Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: uriintel12345 en 3 Abril 2014, 10:55 am



Título: Modificar un archivo de texto, solo sacar las letras y dejarme solo los números
Publicado por: uriintel12345 en 3 Abril 2014, 10:55 am
Hola Chic@s antes que nada quiero felicitarles porque esta es una gran página y un gran foro.

TEMA BAT O BATCH

este es mi problema lo que pasa es que quiero saber como se saca solo los números de una hoja de texto, osea borrar las letras o comandos que en el se encuentren y que quede solo los números: ejemplo

juan=1238382882.. gracias
Luara=3243112212,,,hola
Marcos=183848283;vamos

osea que borre todas las letras y caracteres u quede solo los números

1238382882
3243112212
183848283

de antemano gracias por la ayuda chic@s

perdón es en archivo bat o batch


Título: Re: Modificar un archivo de texto, solo sacar las letras y dejarme solo los números
Publicado por: Eleкtro en 3 Abril 2014, 10:57 am
¿En que lenguaje?


Título: en archivo bat o batch amigo
Publicado por: uriintel12345 en 3 Abril 2014, 11:18 am
en archivo bat o batch amigo


Título: Re: Modificar un archivo de texto, solo sacar las letras y dejarme solo los números
Publicado por: Eleкtro en 3 Abril 2014, 12:48 pm
En Batch sería bastante engorroso, una pérdida de tiempo para la cantidad de escritura que requeriría y lo no demasiado eficiente que sería el resultado final, necesitarías procesar y comparar cada caracter de cada linea haciendole Substring con un Loop, sinceramente habiendo otras muchas mejores y decentes alternativas no estoy por la labor de codear un ejemplo en Batch, pero es algo facil de encontrar en Google.

Si tu objetivo es usar cualquier lenguaje que esté soportado nativamente en Windows entonces puedes usar VisualBasicScript junto a una expresión regular:

Código
  1. NumericChars = RemoveNonNumerics(".\Archivo.txt")
  2.  
  3. Set NewFile  = CreateObject("Scripting.FileSystemObject"). _
  4.               CreateTextFile(".\Archivo.txt", True)
  5.  
  6. NewFile.Write NumericChars
  7. NewFile.Close
  8.  
  9. Wscript.Quit(0)
  10.  
  11. ' By Elektro
  12. Function RemoveNonNumerics(TextFile)
  13.  
  14.    TextContent       = CreateObject("Scripting.FileSystemObject"). _
  15.                        OpenTextFile(TextFile, 1, False).ReadAll
  16.  
  17.    Set objRegEx      = CreateObject("VBScript.RegExp")
  18.    objRegEx.Global   = True  
  19.    objRegEx.Pattern  = "[^0-9\n]"
  20.  
  21.    RemoveNonNumerics = objRegEx.Replace(TextContent, "")
  22.  
  23. End Function

Saludos.


Título: Funciona
Publicado por: uriintel12345 en 3 Abril 2014, 13:26 pm
Funciona de maravilla Eleкtro, el problema es que me me pega todos los números juntos osea queda asi 84883626262738383836262622 en una sola línea o algo pongo mal que queda asi de antemano gracias x tomarte la molestia de ayudarme :D


Título: Re: Funciona
Publicado por: Eleкtro en 3 Abril 2014, 14:18 pm
el problema es que me me pega todos los números juntos

En mi caso funcionó corréctamente al añadirle un salto de linea (\n), pero prueba a reemplazar la expresión regular por esta otra:
Código
  1. objRegEx.Pattern  = "[^0-9\n" & VBcrlf & "]"

Si eso te sigue sin funcionar entonces pásame el archivo de texto por MP para examinarlo, si quieres.

Saludos!


Título: Muchas gracias Eleкtro
Publicado por: uriintel12345 en 3 Abril 2014, 16:15 pm
Eres grande Eleкtro ahora si funciona perfectamente, de verdad muchas gracias en verdad eres grande :D muchas gracias por tomar parte de tu tiempo para ayudarme :D ;-) :laugh: ;D


Título: Modificar el archivo que solo queden 11 números
Publicado por: uriintel12345 en 14 Mayo 2014, 02:45 am
Hola Electro será que no hay manera para que se le agregue o como se dira mantenga solo 11 dígitos y borre los demás números y letras???. osea si el archivo viene asi

sasas12345678912asasasas
sdsd1234
esta opción me elimina todo y queda asi

12345678912
1234

pero me gustaría ver si puede quedar solo la de 11 dígitos y que borre la de 4 dígitos o si se hace con un archivo diferente no importa el chiste es que quede solo una de 11 dígitos :D

OSEA 12345678912 y borre el 1234