Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Textdatei in einen String (https://www.delphipraxis.net/6423-textdatei-einen-string.html)

theomega 10. Jul 2003 14:01


Textdatei in einen String
 
Hallo Leute
ich muß eine Textdatei komplett in einen String packen. Bis jetzt habe ich das über eine stringlist (selber created) und loadfromfile gelöst. Ist natrülich nicht so toll.
Jetzt habe ich diesen Code hier konstruiert:
Delphi-Quellcode:
function rf(filename:string):string;
var tf:textfile;
s,s1:string;
begin
assignfile(tf,filename);
reset(tf);
s:='';

repeat
readln(tf,s1);
s:=s+s1;
until eof(tf);

result := s;
end;
Allerdings bin ich mir nicht sicher, ob der Code ideal ist. Es kommt in meinem Programm auch auf speed an, deshalb die Frage!

Danke
TO

Keldorn 10. Jul 2003 14:15

Re: Textdatei in einen String
 
Zitat:

Zitat von theomega
Hallo Leute
ich muß eine Textdatei komplett in einen String packen. Bis jetzt habe ich das über eine stringlist (selber created) und loadfromfile gelöst. Ist natrülich nicht so toll.

Warum nicht?

eine Stringlist kennt Text und Commatext damit hast du den ganzen Text schon in einem string

Mfg Frank

TheReaper 10. Jul 2003 14:28

Re: Textdatei in einen String
 
Hallo!

Hier hab ich mal ein Beispiel:

Delphi-Quellcode:
function rf(var filename:string):widestring;
var tf:textfile;
    s,sl:widestring;
begin
assignfile(tf,filename);
if FileExists(filename) then
 begin
  reset(tf);
  s:='';
   while not eof(tf) do
   begin
    readln(tf,sl);
    s:=s+sl;
   end;
 end else begin
    showmessage('Datei nicht gefunden');
    result:='Datei nicht gefunden';
 end;

result := s;
end;
Du solltest Widestring statt String nehmen, weil im String nur 255 Zeichen Platz haben und die sind sehr schnell voll! Geht aber auch mit String.
Ist nicht getestet aber dürfte gehen.

Christian Seehase 10. Jul 2003 15:15

Re: Textdatei in einen String
 
Moin Zusammen,

Zitat:

Zitat von TheReaper
Du solltest Widestring statt String nehmen, weil im String nur 255 Zeichen Platz haben

Nö ;-)
Standardmässig hat eine Variable vom Typ string in Delphi eine maximale Länge von 2GB-1.

Einlesen würde ich die Datei mit einem FileStream.

Delphi-Quellcode:
var
  fsWork : TFileStream;
  sBuf  : string;

begin
  fsWork := TFileStream.Create('<Pfad der Datei>',fmOpenRead);
  try
    sBuf := StringOfChar(#00,fsWork.Size);
    fsWork.Read(sBuf[1],fsWork.Size);
  finally
    FreeAndNil(fsWork);
  end;
end;

TheReaper 10. Jul 2003 15:27

Re: Textdatei in einen String
 
:oops: Dann hat mir mein Lehrer mist erzählt. Naja der war sowieso nicht der hellste. :)
Danke für die Info Christian.

Christian Seehase 10. Jul 2003 16:13

Re: Textdatei in einen String
 
Moin The Reaper,

ich war's von Turbo Pascal her auch noch so gewohnt, und hab' mir damals mal ganz schön einen abgebrochen, als ich ein Programm schreiben wollte, wo in einem String mehr als 255 Zeichen sein mussten... ;-)
Hat geklappt, aber... :mrgreen:

Du kannst Dir in den Optionen aber auch einstellen, dass string als ShortString angesehen werden soll. In diesem Falle würde die Aussage mit den 255 Zeichen stimmen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:05 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz