Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Delphi unit (dcu) per quelltext durchsuchen (https://www.delphipraxis.net/5863-delphi-unit-dcu-per-quelltext-durchsuchen.html)

MatthiasW 21. Jun 2003 15:33


Delphi unit (dcu) per quelltext durchsuchen
 
Hallo,

ich möchte zur laufzeit eine delphi Unit (dcu) nach einem bestimmten string durchsuchen. Aber das ganze erst in einen String zu laden und dann mit "Pos" nach dem gewünschten zu suchen geht nicht, da die gesamte Datei nicht in den String geladen wird. An irgendeiner Position in der Datei hört das immer auf zu laden. Gibts eine andere möglichkeit die Datei zu durchsuchen? :?:

Mfg Matthias

Christian Seehase 21. Jun 2003 15:41

Moin Matthias,

wie lädst Du denn die Datei?
Wenn Du z.B. die Stringvariable als Buffer für TFileStream nimmst (in der Länge der Datei initialisiert, dürfte es beim Einlesen schon mal keine Probleme geben.
Ich hab' allerdings noch nicht ausprobiert wie Pos auf binäre Nullen in einem String reagiert.

MatthiasW 21. Jun 2003 16:36

Hallo,

Zitat:

Zitat von Christian Seehase
Moin Matthias,

wie lädst Du denn die Datei?
Wenn Du z.B. die Stringvariable als Buffer für TFileStream nimmst (in der Länge der Datei initialisiert, dürfte es beim Einlesen schon mal keine Probleme geben.

das mit dem laden funktioniert leider nicht, das gibt ne Fehlermeldung genau in dem Moment wo er die Daten lesen soll :cry: .

Der code ist der folgende:

AssignFile(f, sFilename);
Reset(f);
iFileSize := FileSize(f);
CloseFile(f);
myFile := TFileStream.Create(sFilename, fmOpenRead);
SetLength(sReadText, iFileSize);
hier dewr fehler -> myFile.Read(sReadText, iFileSize);

Gibts noch ne andere möglichkeit?

Mfg Matthias

MatthiasW 21. Jun 2003 16:49

Hallo,

das Problem für die Fehlermeldung war das FileSize eine falsche grösse angibt. Ich habe dann für eine Datei die grösse fest eingestellt, da gabs keine Fehlermeldung mehr aber der String war leer. :(

Mfg Matthias

Christian Seehase 21. Jun 2003 17:09

Moin Matthias,

wenn Du einen String als Buffer nimmst, musst Du auch angeben ab welcher Stelle des Strings der Buffer gefüllt werden soll


Delphi-Quellcode:
myFile := TFileStream.Create(sFilename, fmOpenRead);
try
  SetLength(sReadText, myFile.Size);
  myFile.Read(sReadText[1], myFile.Size);
finally
  FreeAndNil(myFile);
end;
BTW:
Wie Du sehen kannst brauchst Du auch nicht mehr zusätzlich die Dateigrösse zu ermitteln.

MatthiasW 21. Jun 2003 19:11

Hallo,

genau da lag mein Fehler, jetzt funzt das aber wirklich :D ,
danke

Mfg Matthias


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:26 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-2025 by Thomas Breitkreuz