![]() |
problem mit Writeln, bitte helft mir...
hallo zusammen
in meinem problem geht es darum 8 zeilen eines array's in ein textfile zu schreiben, jedoch entsteht bei der kompilation ein fehler: [Fehler] UNIT1.PAS(986): Ungültiger Typ in Write/Writeln-Anweisung leider komme ich nicht dahinter was es sein könnte, bitte helft mir
Code:
procedure THauptformular.sbtnKonvertierenClick(Sender: TObject);
var hexarray : array[0..7] of String; y : Word; Testvariable : string; Textfile : file; . . . . begin Assignfile(Textfile,'C:\Dokumente und Einstellungen\mmfembr\Desktop\test.txt'); Rewrite(Textfile); Testvariable := ''; For y := 0 to 7 do begin Testvariable := hexarray[0]; Writeln(Textfile, PChar(Testvariable)); end; CloseFile(Textfile); end; end. |
Re: problem mit Writeln, bitte helft mir...
writeln erwartet einen String und kein PChar
Grüße Klaus |
Re: problem mit Writeln, bitte helft mir...
Warum castest du Testvariable in einen PChar ?
|
Re: problem mit Writeln, bitte helft mir...
leider hat es nicht funktioniert mit einem string, daher dachte ich, ich setz mal einen zeiger drauf...
habt ihr noch eine andere idee? |
Re: problem mit Writeln, bitte helft mir...
TextFile ist ein Typenbezeichner
Wähle für Deine Datei einen anderer Variablennamen.
Delphi-Quellcode:
Grüße
procedure THauptformular.sbtnKonvertierenClick(Sender: TObject);
var hexarray : array[0..7] of String; y : Word; Testvariable : string; Tfile : TextFile; . . . . begin Assignfile(Tfile,'C:\Dokumente und Einstellungen\mmfembr\Desktop\test.txt'); Rewrite(Tfile); Testvariable := ''; For y := 0 to 7 do begin Testvariable := hexarray[0]; Writeln(Tfile, Testvariable); end; CloseFile(Tfile); end; end. Klaus |
Re: problem mit Writeln, bitte helft mir...
Zitat:
For y := 0 to 7 do begin Writeln(Textfile, hexarray[y]); end; CloseFile(Textfile); |
Re: problem mit Writeln, bitte helft mir...
ich hab's nun versucht mit einer anderen variable, was jedoch nicht gegangen ist. zusätzlich versuchte ich es wie im beispiel von mbamler was auch nicht geht da die typen miteinander inkonpatibel sind...
|
Re: problem mit Writeln, bitte helft mir...
Hast du gesehen das Klaus01 den Typ von File auf Textfile geändert hat?
|
Re: problem mit Writeln, bitte helft mir...
Dann zeig doch mal wie es nach der Änderung aussieht. :) Wenn der Variablenname geändert ist und das PChar entfernt wurde müsste es duch laufen. :gruebel:
MfG freak |
Re: problem mit Writeln, bitte helft mir...
ja, hab's gerade gesehen, jedoch bekomme ich nun einen anderen fehler, jedoch ist dieser behoben ... besten dank!
:hello: gruss mmfembr |
Re: problem mit Writeln, bitte helft mir...
Zitat:
folgender Code funktioniert 100%: procedure TForm1.Button1Click(Sender: TObject); var hexarray : array[0..7] of String; y : Word; Testvariable : string; Tfile : TextFile; begin hexarray[0] := 'AA'; hexarray[1] := 'FF'; hexarray[2] := '00'; hexarray[3] := '09'; hexarray[4] := '01'; hexarray[5] := 'BB'; hexarray[6] := 'DF'; hexarray[7] := 'CA'; Assignfile(Tfile,'C:\temp\test.txt'); Rewrite(Tfile); For y := 0 to 7 do begin Writeln(Tfile, hexarray[y]); end; CloseFile(Tfile); end; |
Re: problem mit Writeln, bitte helft mir...
nochmals besten dank für eure mühe, meine software funktioniert jetzt einwandfrei, hatte nur noch dass problem dass ich einen array abgefragt habe , welcher 0..7 ist und ich habe 0..8 abgefragt...
gruss mmfembr :coder: |
Re: problem mit Writeln, bitte helft mir...
Moin, genau so geht das.
Verwende doch bitte Die Delphi-Tags. (Tastenkombi. ALT + d) Den Namen der Variablen TextFile würde ich umbenennen.
Delphi-Quellcode:
// Edit: Huch, er hat es ja schon, die Beiträge wurden bei mir erst kor. Angezeigt als ich den Cache gelöscht hatte. :gruebel: Die Fehlerprüfung solltest du aber machen.
procedure THauptformular.sbtnKonvertierenClick(Sender: TObject);
const Max_ArrayItems = 7; var hexarray : array[0..Max_ArrayItems] of String; y : Word; Testvariable : string; Tfile : TextFile; . . . begin AssignFile(Tfile, ExtractFilePath(ParamStr(0)) + 'test.txt'); {$I-} // Fehlerprüfung Rewrite(Tfile); {$i+} if IOResult = 0 then begin For y := 0 to Max_ArrayItems do Writeln(Tfile, hexarray[y]); end else begin Messagebox(Handle,'','Fehler', MB_ICONREEOR or MB_OK); end; CloseFile(Tfile); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:18 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