Modificar un archivo de texto, solo sacar las letras y dejarme solo los números

Iniciado por uriintel12345, 3 Abril 2014, 10:55 AM

0 Miembros y 1 Visitante están viendo este tema.

uriintel12345

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

Eleкtro









uriintel12345


Eleкtro

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 (vb) [Seleccionar]
NumericChars = RemoveNonNumerics(".\Archivo.txt")

Set NewFile  = CreateObject("Scripting.FileSystemObject"). _
              CreateTextFile(".\Archivo.txt", True)

NewFile.Write NumericChars
NewFile.Close

Wscript.Quit(0)

' By Elektro
Function RemoveNonNumerics(TextFile)

   TextContent       = CreateObject("Scripting.FileSystemObject"). _
                       OpenTextFile(TextFile, 1, False).ReadAll

   Set objRegEx      = CreateObject("VBScript.RegExp")
   objRegEx.Global   = True  
   objRegEx.Pattern  = "[^0-9\n]"

   RemoveNonNumerics = objRegEx.Replace(TextContent, "")

End Function


Saludos.








uriintel12345

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

Eleкtro

Cita de: uriintel12345 en  3 Abril 2014, 13:26 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 (vb) [Seleccionar]
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!








uriintel12345

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

uriintel12345

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