Beim Ändern eines meiner Programme bin ich auf ein Problem gestoßen.
Ich habe mir eine Struktur für einen Datensatz erstellt:
Code: Alles auswählen
Type dbase = record
name : string[30];
ort : string[30];
end;
Code: Alles auswählen
Type dbase = record
name : string[30];
ort : string[30];
end;
Code: Alles auswählen
type dbase = record
name : string[30];
ort : string[30];
end;
var Mydbase : dbase;
procedure DranHaengen( Einfg : dbase );
var datei: text;
begin
assign( datei, 'MyText.txt' );
append( datei ); {Datei muss schon exisitieren!}
writeln( datei, Einfg.name );
writeln( datei, Einfg.ort );
close( datei );
end;
begin
Mydbase.name := 'dosuser60';
Mydbase.ort := 'Husum';
Dranhaengen( Mydbase );
end.
Deswegen hatte ich in meinem Beispiel auch die einzelnen Einträge über zwei Zeilen verteilt. Denn nein, so eine Funktion gibt es in Pascal nicht.dosuser60 hat geschrieben:Hi wobo,
erstmal danke für die Antwort.
An soetwas ähnliches hatte ich auch schon gedacht, allerdings bin ich da dann am Auslesen gescheitert, da ich ja zwei Daten (=ein Datensatz) pro Zeile habe, welche durch ein Leerzeichen getrennt sind. Bei C++ liest der cin-Befehl immer nur bis zum nächsten Leerzeichen. Gibt es denn so eine ähnliche Funktion auch bei Pascal oder, um auf dein Beispiel zurückzukommen, eine Möglichkeit ganze Zeilen einzulesen?
Code: Alles auswählen
procedure ReadFirstEntry;
var datei : text;
TrennPos ; byte;
zeile : string;
begin
assign( datei, ´dbase.txt' );
reset( datei );
readln( datei, zeile );
TrennPos := Pos(' ',zeile);
Mydbase.name := Copy( zeile, 1, TrennPos-1 );
Mydbase.ort := Copy( zeile, TrennPos+1, Length(zeile)-TrennPos );
close( datei );
end;
Code: Alles auswählen
...
writeln( datei, Mydbase.name, ' ', Mydbase.ort );
...
Mir geht es gerade wie Brueggi: Ich kann mit Deinen Infos nicht so richtig was anfangen. Poste doch am besten die Source-Zeile, in der der Fehler auftritt.dosuser60 hat geschrieben:Um das Ganze zu konkretisieren:
Ich wollte meine Datenbankdatei als Textdatei einbinden aber beim Versuch kam die Fehlermeldung raus und ich weiß nicht, was sie zu bedeuten hat.
Code: Alles auswählen
Append(dfile);
Code: Alles auswählen
dfile : File of Text;
1. Die Fehlermeldung wird nicht in der Zeile "Append(dfile)" ausgegeben, sondern bereits in der Zeile zur Variablendeklaration, denn ein "File of Text" gibt es nicht.dosuser60 hat geschrieben:Also der Fehler tritt in folgender Zeile auf:Obwohl ich dfile vernünftig definiert habe:Code: Alles auswählen
Append(dfile);
Code: Alles auswählen
dfile : File of Text;
Ich glaube Dir das gerne. Bei meinem Versuch Deinen Fehler zu reproduzieren kam allerdings bei mir (Turbo Pscal 7.0) die Fehlermeldung in der Deklarationszeile. Ich kann mich aber vage daran erinnern, dass sich verschiedene Compilerversionen bei solchen Dingen unterschieden haben. Zumindest bei TP 5.5 kamen nicht alle Fehlermeldungen dort, wo sie dann auch bei TP 7.0 erfolgten (vage Erinnerung an die frühen 90er). Vielleicht liegt es auch an unterschiedlichen Compilerschaltern? Egal, Hauptsache es klappt jetzt!dosuser60 hat geschrieben: @wobo: Der Fehler lag tatsächlich in der Append-Zeile, aber wegen der falschen Definition.