![]() |
Fehler: Inkompatible Typen
Ich habe den folgenden Text geschrieben, es soll ein Datum aus dem DateTimePicker, die Uhrzeit und ein Text aus je 1 Edit-Feld eingetragen werden und dabei ist zu prüfen, ob der Termin schon verplant ist.
Das Problem ist nun, dass er den Fehler: Inkompatible Typen in allen Zeilen anzeigt, wo es um die Datei geht. :gruebel: Wer kann mir sagen wo der Fehler liegt und ihn berichtigen? :?: Danke schon mal :-D
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var Datei : TStringList; datum_neu : string; zeit_neu : string; event_neu:string; zeile_neu:string; datum: string; zeit: string; zeile:string; vorhanden:string; begin datum_neu:= DateToStr(DateTimePicker1.Date); zeit_neu:=EingabeZeit.Text; event_neu:=EingabeEvent.Text; zeile_neu:=datum_neu+';'+zeit_neu+';'+event_neu; AssignFile(datei,'termine.csv'); //Dateivariable verknüpfen reset(datei); //Datei öffnen //Test, ob Datum schon in der Datei steht vorhanden:=false; WHILE not EOF(datei) DO //Wiederhole solange das Dateiende nicht erreicht BEGIN readln (datei,zeile) //zeile wird aus der Datei gelesen datum:=copy(zeile,1,10); //ab 1. Zeichen bis 10. Zeichen --> dort steht das Datum zeit:= copy(zeile,12,5); //ab 12. Zeichen 5 Zeichen kopieren --> Uhrzeit //Vergleich IF (datum_neu = datum) AND (zeit_neu=zeit) THEN vorhanden:=true; END; CloseFile(datei); //Wenn noch nicht vorhanden, dann neu in die Datei schreiben, sonst Hinweis ausgeben IF vorhanden THEN ShowMessage('Der Termin ist schon belegt') ELSE BEGIN append(datei); //Datei öffnen zum anhängenden schreiben writeln(datei,zeile_neu); closefile(datei); END; |
Re: Fehler: Inkompatible Typen
Bei der var deklaration hast Du "Datei als TStringList deklariert.
Benutzen tust Du es als "FileHandle".
Delphi-Quellcode:
So würde es mit einer TStringlist ausschauen.AssignFile(datei,'termine.csv'); //Dateivariable verknüpfen reset(datei); //Datei öffnen //Test, ob Datum schon in der Datei steht vorhanden:=false; WHILE not EOF(datei) DO //Wiederhole solange das Dateiende nicht erreicht BEGIN readln (datei,zeile) //zeile wird aus der Datei gelesen datum:=copy(zeile,1,10); //ab 1. Zeichen bis 10. Zeichen --> dort steht das Datum zeit:= copy(zeile,12,5); //ab 12. Zeichen 5 Zeichen kopieren --> Uhrzeit //Vergleich IF (datum_neu = datum) AND (zeit_neu=zeit) THEN vorhanden:=true;
Delphi-Quellcode:
Grüße
datei := TStringList.create;
datei.loadFromFile('termine.csv'); //Test, ob Datum schon in der Datei steht vorhanden:=false; for i:=0 to datei.count -1 do //Wiederhole solange das Dateiende nicht erreicht BEGIN zeile := datei[i]; //zeile wird aus der Datei gelesen datum:=copy(zeile,1,10); //ab 1. Zeichen bis 10. Zeichen --> dort steht das Datum zeit:= copy(zeile,12,5); //ab 12. Zeichen 5 Zeichen kopieren --> Uhrzeit //Vergleich IF (datum_neu = datum) AND (zeit_neu=zeit) THEN vorhanden:=true; Klaus |
Re: Fehler: Inkompatible Typen
Edit: zu langsam
|
Re: Fehler: Inkompatible Typen
Und zusätzlich solltest du die Variable "vorhanden" als boolean deklarieren.
|
Re: Fehler: Inkompatible Typen
Danke erstmal für die Hinweise, bis dahin funktioniert es nun.
Mein eigentliches Ziel ist es aber, dass geprüft wird, ob in meiner Tabelle der Termin bereits vorhanden ist in dann ggf. hinzugefügt wird. Dieser Test funktioniert aber nicht. :cry: Wer kann helfen? |
Re: Fehler: Inkompatible Typen
Hallo,
hast Du dir schon einmal einen Haltepunkt in der Schleife gesetzt? Den Inhalt der Variablem datum und Zeit kannst Du dir anzeigen lassen. Dazu die Variablen markieren und strg+f5 drücken. Wenn Du dann mit F8 oder F7 den Quelltext durchgehst wirst Du wahrschienlich darauf stossen wo das Problem liegt. Grüße Klaus |
Re: Fehler: Inkompatible Typen
@mkpre: Mache bitte für dein neues Problem ein neues Thema auf. Ansonsten wird das ganze zu unübersichtlich. Zudem lässt sich das neue Thema dann besser über die Suchfunktion finde da du dann auch einen neuen aussagekräftigen Titel wählen kannst der zum Problem passt. Dadurch finden später Leute die das gleiche Problem haben die Lösung besser mit Hilfe der Suchfunktion :-)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:55 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