Delphi - lectura de ficheros de texto

 
Vista:

lectura de ficheros de texto

Publicado por xavi (4 intervenciones) el 19/09/2001 00:46:04
Hola.

Necesito leer un fichero de texto que contiene cadenas de caracteres separadas por espacios o enters.

Hay alguna manera de obtener estas cadenas de caracteres sin tener que leer carácter a carácter?

Por ejemplo, si en un fichero tengo:

hola que tal

necesito un vector de strings donde el primero sea "hola", el segundo "que" y el tercero "tal". La distinción de las "palabras" se haría indicando que el separador es el espacio o el carácter enter (CR/LF).

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:lectura de ficheros de texto

Publicado por Fer (117 intervenciones) el 19/09/2001 08:46:19
Puedes cargar el contenido del fichero de texto en un TStringList y luego aislar las palabras o "tokens" utilizando la función "GetToken" que puedes obtener en www.delphi3000.com. De esta forma, en el TstringList, puedes acceder a todo el contenido del fichero con la propiedad Text y, la primera palabra sería:

GetToken(MiStringList, 1, ' ')

Mientras que la primera línea (hasta el primer CR+LF) es:

MiStringList.Strings[0]

Syntax:
-------

Gettoken('yourstring','seperation character',number of token);

Example:
--------

You have the string a:="AA,BB,CC,DD" and you want to get the second
token which is here "BB".
Try

theresult:=gettoken(a,',',2);

Function:
---------

function GetToken(a: String; Sep: Char; Num: Byte):String;
var
Token:String; StrLen:Byte; TNum:Byte; TEnd:Byte;
begin
strLen:=Length(a);
TNum:=1;
TEnd:=StrLen;
while ((TNum<=Num) and (TEnd <> 0)) do
begin
TEnd:=Pos(Sep,a);
if TEnd<>0 then
begin
Token:=Copy(a,1,TEnd-1);
Delete(a,1,TEnd);
Inc(TNum);
end
else Token:=a;
end;
if TNum>=Num then Result:=Token
else Result:='';
end;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar