PDA

Ver la Versión Completa : Problema leer un fichero .sql


jymy788
17-07-2005, 20:28:47
Buenas a todos, seguro que mi problema es una gilipollez pero me trae frito. Necesito leer un archivo .sql y guardarlo en una variable sql para poder realizar una query después.

Utilizo una función, que ahora os pondré, para leer este fichero pero no me tiene en cuenta los retornos de carro ni las indentaciones y el caso es que su resultado no me sirve.

Función:
[DELPHI]
function BfFilGetTextFile(Ruta : string) : string;
var
f : textfile;
aux : char;
str : string;
begin
try
AssignFile(f, Ruta);
Reset(f);
while not SeekEof(f) do
begin
if SeekEoln(f) then
Readln(f, aux);
Read(f, aux);
str := str + aux;
end;
CloseFile(f);
finally
end;
result := str;
end;
[\DEPHI]

Me puede decir alguien como solucionar este problema?? No tengo necesidad ninguna de utilizar esta función, cualquier idea será bien recibida.

Gracias a todos

jymy788
17-07-2005, 20:39:01
Por cierto, que se me olvidó, no me gustaría tener que utilizar la propiedad LoadFromFile del TQuery en su propiedad SQL:

QUtil.SQL.LoadFromFile(file);

Si no queda otro remedio ya sé que se puede hacer así, gracias.

Casimiro Notevi
17-07-2005, 21:03:15
y por qué no quieres usar loadfromfile?

jymy788
18-07-2005, 08:36:52
La verdad, a mi me da lo mismo pero tengo la "manía" de guardar el contenido de ese tipo de cosas en variables (strings, streams...) por si tengo que hacer algo con ellas, que normalmente me toca, aunque en este caso concreto no.

delphi.com.ar
18-07-2005, 14:47:23
La verdad, a mi me da lo mismo pero tengo la "manía" de guardar el contenido de ese tipo de cosas en variables (strings, streams...) por si tengo que hacer algo con ellas, que normalmente me toca, aunque en este caso concreto no.
En ese caso tendras información en memoria por duplicado... :confused:
Si quieres hacer eso, puedes hacer

var
sDuplicado: string;
begin
Query.Sql.LoadFromFile(AFileName);
sDuplicado := Query.Sql.Text;

Pero me siguie pareciendo abusrdo, simplemente por una costumbre :confused:
Explicate un poco mas!