{"id":24482209,"url":"https://github.com/ozzies-code/ordenar-texto","last_synced_at":"2026-02-05T18:31:05.890Z","repository":{"id":271596207,"uuid":"913953619","full_name":"ozzies-code/Ordenar-Texto","owner":"ozzies-code","description":"Este Proyecto consiste en llevar a cabo una serie de acciones sobre archivos: Abrir, Guardar, Ordenar Texto, Agregar Fecha como encabezado.","archived":false,"fork":false,"pushed_at":"2025-01-08T17:20:45.000Z","size":39,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-10T22:15:27.025Z","etag":null,"topics":["shell-sort","sorting-algorithms"],"latest_commit_sha":null,"homepage":"https://github.com/ozzies-code/Ordenar-Texto/","language":"Visual Basic .NET","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ozzies-code.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-08T17:04:33.000Z","updated_at":"2025-01-08T17:22:19.000Z","dependencies_parsed_at":"2025-01-08T18:31:56.338Z","dependency_job_id":"47c613a6-ec3b-40a7-8a14-0164aef6011d","html_url":"https://github.com/ozzies-code/Ordenar-Texto","commit_stats":null,"previous_names":["ozzies-code/ordenar-texto"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ozzies-code/Ordenar-Texto","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ozzies-code%2FOrdenar-Texto","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ozzies-code%2FOrdenar-Texto/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ozzies-code%2FOrdenar-Texto/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ozzies-code%2FOrdenar-Texto/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ozzies-code","download_url":"https://codeload.github.com/ozzies-code/Ordenar-Texto/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ozzies-code%2FOrdenar-Texto/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29128677,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-05T17:12:17.649Z","status":"ssl_error","status_checked_at":"2026-02-05T17:11:23.670Z","response_time":65,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["shell-sort","sorting-algorithms"],"created_at":"2025-01-21T12:13:06.853Z","updated_at":"2026-02-05T18:31:05.873Z","avatar_url":"https://github.com/ozzies-code.png","language":"Visual Basic .NET","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ordenar Texto\n\n Este Proyecto consiste en llevar a cabo una serie de acciones \n sobre archivos: Abrir, Guardar, Ordenar Texto, Agregar \n Fecha como encabezado.\n\n # Descripcion\n\n Este proyecto realiza una serie de acciones sobre Archivos de texto\n entre las que se pueden destacar: Abrir Archivo, Guardar Archivo, \n Ordenar Archivo, obtener la hora local en la cabezera del archivo,\n lo cual se logra con los objetos StripMenu, OpenDialog y SaveDialog.\n Tambien se trabaja con la rutina de Ordenacion ShellSort que es\n llamada para ordenar un archivo de etxto cuando se muestra por pantalla\n y conservar los cambios si lo decide el usuario\n \n \n # Actualizacion: 08/01/2025\n # Hora: 13:15\n\nDetalles técnicos del proyecto:\nIdioma: Visual Basic.NET\nVersión del framework: 4.7.2\n\n# Sort Text\n\nThis project consists of carrying out a series of actions on files:\nOpen, Save, Sort Text, Add Date as a header.\n\n# Description\n\nThis project performs a series of actions on text files,\namong which we can highlight: Open File, Save File,\nSort File, get the local time in the file header,\nwhich is achieved with the StripMenu, OpenDialog \nand SaveDialog objects. It also works with the ShellSort \nsorting routine that is called to sort a text file when \nit is displayed on the screen and keep the changes if \nthe user decides so.\n\n# Update: 01/08/2025\n# Time: 13:15\n\nTechnical details of the project:\nLanguage: Visual Basic.NET\nFramework version: 4.7.2\n\n![imagen](https://github.com/user-attachments/assets/6734ff3b-2f13-4b4d-86da-ad00d540d646)\n\nCode of the Project:\n\nImports System.Array\nPublic Class Form1\n\n    Dim ArregloJusto() As String\n\n    Private Sub OpenToolStripMenuItem_Click_1(sender As Object, e As EventArgs) Handles OpenToolStripMenuItem.Click\n        Dim TodoElTexto As String = \"\", LíneaDeTexto As String = \"\"\n        OpenFileDialog1.Filter = \"Archivos de texto (*.TXT)|*.TXT\"\n        OpenFileDialog1.ShowDialog() 'abre el cuadro de diálogo Abrir\n        If OpenFileDialog1.FileName \u003c\u003e \"\" Then\n            Try 'abre el archivo y detecta cualesquiera errores mediante un controlador\n                FileOpen(1, OpenFileDialog1.FileName, OpenMode.Input)\n                Do Until EOF(1) 'lee las líneas del archivo\n                    LíneaDeTexto = LineInput(1)\n                    'agrega cada una de las líneas a la variable TodoElTexto\n                    TodoElTexto = TodoElTexto \u0026 LíneaDeTexto \u0026 vbCrLf\n                Loop                   'actualizar etiqueta\n                etiNota.Text = OpenFileDialog1.FileName\n                txtNota.Text = TodoElTexto 'despliega el archivo\n                txtNota.Enabled = True 'activa el cursor de texto\n                CloseToolStripMenuItem.Enabled = True  'activa el comando Cerrar\n                OpenToolStripMenuItem.Enabled = False  'desactiva el comando Abrir\n            Catch\n                MsgBox(\"Error de apertura de archivo. Tal vez sea demasiado grande.\")\n            Finally\n                FileClose(1) 'cierra el archivo\n            End Try\n        End If\n    End Sub\n\n    Private Sub CloseToolStripMenuItem_Click_1(sender As Object, e As EventArgs) Handles CloseToolStripMenuItem.Click\n        txtNota.Text = \"\"             'elimina el contenido del cuadro de texto\n        etiNota.Text = \"Carga un archivo de texto mediante el comando Abrir.\"\n        CloseToolStripMenuItem.Enabled = False  'desactiva el comando Cerrar\n        OpenToolStripMenuItem.Enabled = True    'activa el comando Abrir\n    End Sub\n\n    Private Sub SaveAsToolStripMenuItem_Click_1(sender As Object, e As EventArgs) Handles SaveAsToolStripMenuItem.Click\n        SaveFileDialog1.Filter = \"Archivos de texto (*.txt)|*.txt\"\n        SaveFileDialog1.ShowDialog()\n        If SaveFileDialog1.FileName \u003c\u003e \"\" Then\n            FileOpen(1, SaveFileDialog1.FileName, OpenMode.Output)\n            PrintLine(1, txtNota.Text) 'copia el texto en el disco\n            FileClose(1)\n        End If\n    End Sub\n\n    Private Sub InsertDateToolStripMenuItem_Click_1(sender As Object, e As EventArgs) Handles InsertDateToolStripMenuItem.Click\n        txtNota.Text = My.Computer.Clock.LocalTime \u0026 vbCrLf \u0026 txtNota.Text\n        txtNota.Select(1, 0)  'elimina la selección\n    End Sub\n\n\n    Private Sub SortTextToolStripMenuItem_Click_1(sender As Object, e As EventArgs) Handles SortTextToolStripMenuItem.Click\n        Dim ln, líneact, letra As String\n        Dim i, CarEnArchivo, CuentaLíneas As Short\n\n        'determina el número de líneas que hay en el objeto cuadro de texto (txtNota)\n        CuentaLíneas = 0 'esta variable aloja el número total de líneas\n        CarEnArchivo = txtNota.Text.Length 'obtiene el total de caracteres\n        For i = 0 To CarEnArchivo - 1 'mueve un carácter a la vez\n            letra = txtNota.Text.Substring(i, 1) 'obtiene una letra\n            If letra = Chr(13) Then 'si encuentra un retorno de carro\n                CuentaLíneas += 1 'va a la línea siguiente (y la suma a la cuenta)\n                i += 1 'salta el carácter de alimentación de línea (normalmente sigue a cr en PC)\n            End If\n        Next i\n\n        'crea un arreglo para contener el texto del cuadro de texto\n        ReDim ArregloJusto(CuentaLíneas) 'crea un arreglo del tamaño apropiado\n        líneact = 1\n        ln = \"\" 'emplea ln para crear líneas, un carácter a la vez\n        For i = 0 To CarEnArchivo - 1 'hace un nuevo ciclo en el texto\n            letra = txtNota.Text.Substring(i, 1) 'get letter\n            If letra = Chr(13) Then 'si se localiza un retorno de carro\n                líneact = líneact + 1 'incrementa el conteo de líneas\n                i += 1 'salta el carácter de alimentación de líneas\n                ln = \"\" 'borra la línea y va a la siguiente\n            Else\n                ln = ln \u0026 letra 'agrega una letra a la línea\n                ArregloJusto(líneact) = ln 'y la suma al arreglo\n            End If\n        Next i\n\n        'ordena el arreglo\n        ShellSort(ArregloJusto, CuentaLíneas)\n\n        'y despliega el arreglo ordenado en el cuadro de texto\n        txtNota.Text = \"\"\n        líneact = 1\n        For i = 1 To CuentaLíneas\n            txtNota.Text = txtNota.Text \u0026\n              ArregloJusto(líneact) \u0026 vbCrLf\n            líneact += 1\n        Next i\n        txtNota.Select(1, 0)   'elimina la selección del texto\n    End Sub\n\n    Private Sub ExitToolStripMenuItem_Click_1(sender As Object, e As EventArgs) Handles ExitToolStripMenuItem.Click\n        End\n    End Sub\n\n    Module Module1\n\n    Sub ShellSort(ByRef ordenar() As String, ByVal numDeElementos As Short)\n        Dim temp As String\n        Dim i, j, abarcar As Short\n\n        'El Procedimiento ShellSort organiza los elementos de ordenar()\n        'en orden descendente y los devuelve al procedimiento que los invoco\n\n        abarcar = numDeElementos / 2\n        Do While abarcar \u003e 0\n            For i = abarcar To numDeElementos - 1\n                For j = (i - abarcar + 1) To 1 Step -abarcar\n                    If ordenar(j) \u003c= ordenar(j + abarcar) Then Exit For\n\n                    'Revisa los elementos del Arreglo que estan en desorden\n                    temp = ordenar(j)\n                    ordenar(j) = ordenar(j + abarcar)\n                    ordenar(j + abarcar) = temp\n                Next j\n            Next i\n            abarcar = abarcar / 2\n        Loop\n    End Sub\n\nEnd Module\n\nEnd Class\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fozzies-code%2Fordenar-texto","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fozzies-code%2Fordenar-texto","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fozzies-code%2Fordenar-texto/lists"}