Entwickler-Ecke

Dateizugriff - Schreibvorgang in Textfile mit SetTextBuf beschleunigen


subw00fer - Do 11.09.03 12:31
Titel: Schreibvorgang in Textfile mit SetTextBuf beschleunigen
Hallo!

Ich lese Daten aus einer AS400-DB und schreibe die Daten die ich durch ein Query bekomme in ein Textfile. Da ein Textfile aus mehreren As400-Tabellen besteht werden die Textfiles sehr groß. Ich denke, dass ich viel Zeit mit dem Schreiben in die Files aufbrauche. Daher will ich mit SetTextBuf den Vorgang ein wenig beschleunigen.


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
var 
  Buf: array[0..4096of Char;  
  f: TextFile; 

procedure TForm1.StartProzessTimer(Sender: TObject);
begin
 //...
  AssignFile(f,C:\Temp\Test.txt'); 
  SetTextBuf(f,Buf);  
  Rewrite(f);  
 // ... 
  CloseFile(f);   
 //...
end;


Problem:
Fehlermeldung bei SetTextBuf
[Fehler] Schaufel.pas(140): Inkompatible Typen: 'Text' und 'PAnsiChar'

P:S.:Ich habe die Syntax aus der OH übernommen und vertstehe nicht was ich falsch mache

mfg Patrick

Moderiert von user profile iconUGrohne: Code- durch Delphi-Tags ersetzt


MAlsleben - Do 11.09.03 16:09

Hi,

wenn Du hier beim posten keinen Tippfehler gemacht hast
AssignFile(f,C:\Temp\Test.txt'); fehlt Dir ein Hochkomma im Dateinamen.

AssignFile(f,'C:\Temp\Test.txt'); <-- so wärs richtig

Inder nächsten Zeile würde ich bei settextbuf mal die Unit noch mit einbeziehen, also so: system.settextbuf(.....), denn settextbuf gibt es in Delphi mehrfach. bin ich auch schon mal vorm Baum gelaufen. Mit Angabe der Unit hat's dann geklappt.

Gruß Micha.


subw00fer - Fr 12.09.03 08:40

Servus!

Sorry, es war ein Tippfehler.

Habe die Unit einbezogen und es funktioniert.

Danke nochmal