Entwickler-Ecke

Dateizugriff - Tino's function um datei in string zu laden


JeanvanHees - Mo 16.09.02 14:51
Titel: Tino's function um datei in string zu laden
Tag leute :wink2:

Quelltext
1:
2:
3:
4:
5:
fs:= TFilestream.Create(Naam,fmOpenRead);
SetLength(Filestring,fs.Size);
if fs.Size >0
        then fs.Read(Filestring[1],fs.Size);
fs.Free;

Eine function die mir gut weitergeholfen hat. Danke dafür Tino. :mrgreen:
Aberrr...
Er drängelt sich vor; Selbst beim debugging wird diese function eher ausgeführt als der break und die funktionen dafor.
Ich bin vertraut mit diese art ereignisse weil ich windows kenne. Aber doch weiß ich nicht die details...Also Meine frage(n)....
Hat es etwas mit den Filestream zu tuhen?
..Noch wichtiger...Wie löse ich dieses problem?


Tino - Di 17.09.02 09:44
Titel: Re: Tino's function um datei in string zu laden
Hallo,

ich verstehe Deine Frage nicht:
JeanvanHees hat folgendes geschrieben:
Er drängelt sich vor; Selbst beim debugging wird diese function eher ausgeführt als der break und die funktionen dafor.

Kannst Du das bitte noch mal genauer beschreiben!

Gruß
TINO


JeanvanHees - Di 17.09.02 09:59

Morgen Tino :wink2:

Ok, also er wird ausgeführt wenn die funktionen die vor ihm stehen noch nicht sind ausgeführt.
Es ist nämlich so, ich mache aine textfile an, und danach möchte ich ihn öffnen. Aber weil die Filestring funktion eher beginnt ,muß das programm einen file öffnen der nicht existiert.
Ich habe mal probiert einen loop dafor zu setzen der immer prüft ob es den file schon gibt, aber selbst da springt die funktion dafor....
Ich weiß jetzt nicht so richtig weiter :nixweiss:


Tino - Di 17.09.02 10:09

Guten morgen,

so ganz verstehe ich das immer noch nicht. :?

Poste doch mal die komplette Methode in der die Aufrufreihenfolge nicht richtig funktioniert.

Gruß
TINO


JeanvanHees - Di 17.09.02 10:33


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
then begin
        BFEtoTXT(OpenDialog1.FileName,OpenDialog1.InitialDir);
        ChangeFileName(Filen);//ändere fiename to .txt
        while not FindFirst(Filen,faAnyFile,R) = 0
                do begin
                dummy;
                end;
        Opentxtfile(Filen);
        end

Wenn ich debugge von den 'then begin' ab krieg ich direkt wieder den error das es den textfile nicht gibt den ich öffnen will


Tino - Di 17.09.02 10:39

JeanvanHees hat folgendes geschrieben:
Wenn ich debugge von den 'then begin' ab krieg ich direkt wieder den error

Also passiert der Fehler in der Methode BFEtoTXT... oder sehe ich das falsch. Debug mal in diese Procedure rein und schau mal ob dort der Fehler auftritt!

Gruß
TINO


JeanvanHees - Di 17.09.02 10:44

Nein diese funktion wirkt einbahnfrei.


Tino - Di 17.09.02 11:46

JeanvanHees hat folgendes geschrieben:
Wenn ich debugge von den 'then begin' ab krieg ich direkt wieder den error

Wie genau heißt denn die Fehlermeldung?


JeanvanHees - Di 17.09.02 11:59

Es steht da : Cannot open file derfile.txt
Die BFE to TXT funktion öffnet einen handle für die conversion durch einen commando aus zu führen.
Das dauert ziemlich lange.
Gibt es vielleicht eine funktion um zu checken ob er geschlossen ist.

Ich sagte
Zitat:
Nein diese funktion wirkt einbahnfrei

Stimmt auch. aber du hattest doch recht das ich hier die lösung suchen muß...Tschuldigung :oops:


Tino - Di 17.09.02 12:18

JeanvanHees hat folgendes geschrieben:
Die BFE to TXT funktion öffnet einen handle

Das mag ja sein aber wahrscheinlich wird dort der Fehler ausgelöst.

Bist Du sicher das die Datei vorhanden ist?


JeanvanHees - Di 17.09.02 12:23

Du meinst die BFE datei?
Der ist sicherlich vorhanden.
Aber die .txt version ist nur vorhanden wenn das commando ist ausgeführt.
Ich weiß auch 100% sicher das die textfile angemacht werd und gut ist.


JeanvanHees - Di 17.09.02 13:38

Ich hab ihm jetzt am laufen, aber ich bin nicht überzeugt von die stabilität. Ich mache gebrauch von ein delay aber ich habe gelernt nicht zu viel auf delays zu vertrauen.
Also wenn jemand eine andere idee hat...alle hilfe ist wilkommen.
Jedenfalls danke für deine hilfe Tino.