Sustituir Codigo ASCII Fichero texto
Hola a todos!!
No paro de darle vueltas buscando algo así pero no encuentro nada... necesito leer un fichero de texto, letra a letra, y sustituir palabras ¿el problema? que quiero sustituir Ñ, º..cosas así, que no me está cogiendo a la hora de leerlo y tengo que comparar la palabra que leo con el cod ascii, pero de verdad no lo veo.. ¿alguna ayudilla? un saludo y gracias |
Hola,
lo que se me ocurre es que puedes hacer es cargar el fichero en un TStringList y, usando StringReplace sobre su propiedad Text, ir sustituyendo los caracteres que te interesen, y usar el metodo SaveToFile para salvar los cambios. Un saludo. |
Mas o menos coso que quiso decir que lo hagas asi:
Aunque lo veo mas conveniente hacerlo asi: Ya que puede ocurrir que nuestro archivo sea demasiado grande para hacerlo todo de un golpe.;) Saludos...:) end; |
Hola! el stringReplace me lo hace perfectamente, por ejemplo, cambiando A por 4, pero en cuanto le meto Ñ no hace nada..no lo entiendo
|
Cita:
Quisas algo debes estar haciendo mal.;) Saludos...:) |
Ah, si intento buscarlo indicandole, en vez de una Ñ, que es el #165 lo ignora tb..
|
olvidé comentar que lo hago con Lazarus, aunq es pascal..
exactamente pongo esto f:=TStringList.Create; try f.LoadFromFile('d:\hola.txt'); //leemos desde el archivo for i:=0 to f.Count-1 do showmessage(f.strings[i]); f.Strings[i]:=StringReplace(f.Strings[i],'Ñ','N',[rfReplaceAll,rfIgnoreCase]);//reemplazo las "ñ" por "n" linea a linea f.SaveToFile('d:\hola.txt'); ShowMessage('Se ha modificado..'); finally f.Free;//Liberamos el objeto f end; y el archivo hola.txt contiene esto 4 4sf4ewrfwqerÑ 9sdfñwerÑewr |
Prueba aponerle la letra 'Ñ' tal cual como lo he codificado yo.;).osea directamente.:)
|
Sí, probe justo así
f.Strings[i]:=StringReplace(f.Strings[i],'Ñ','N',[rfReplaceAll,rfIgnoreCase]); pero nada |
Nótese que la función StringReplace diferencia mayúsculas de minúsculas...
Aunque si no es por eso, puede que sea cosa del conjunto de carácteres del fichero de texto. |
Si hago un showmessage exactamente de la linea que está leyendo me muestra, si pone en el fichero ABCÑP muestra ABC?P, pero si le digo que reemplace el ? no lo encuentra
|
Cita:
Eso se soluciona (si el texto está en ASCII) con una función de la API de Windows, OEMToANSI. Además de la Ñ te solucionará otros carácteres, como º, ª, ¿, carácteres con tilde, etc. Si pruebas a visualizar el texto desde una consola de comandos en Windows, las eñes y demás carácteres "extraños" se te mostrarán correctamente. |
Cita:
Saludos...:) |
La franja horaria es GMT +2. Ahora son las 10:10:34. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi