GELÖST:.txt Dateien in Programm einlesen

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
R3dFox
Beiträge: 13
Registriert: Sa 23. Jan 2021, 12:33

GELÖST:.txt Dateien in Programm einlesen

Beitrag von R3dFox »

Hallo,
ich habe ein Umfrage-Programm geschrieben(pro Frage 5 Antwortmöglichkeiten), dass die antworten als .txt speichert. Der Teilnehmer gibt eine vierstellige Nummer ein, welche dann auch der Name der txt ist, und in dieser werden die Ergebnisse der 10 Fragen gespeichert. (im Format: 1;2;3;4;5;2;4;3;5;1;).
Meine Frage ist jetzt, wie ich die Ergebnisse in das Programm zum Auswerten wieder einlesen kann. Also es muss erkennen, dass z.B. die erste Frage mit 1-5 beantwortet wurde.
Kann man auch alle .txt-Dateien, die sich in einem Ordner befinden, einlesen? So, dass das Programm zu jeder Frage den Durchschnitt berechnen könnte.

Schon einmal vielen Dank für die Antworten!
Zuletzt geändert von R3dFox am So 7. Feb 2021, 11:36, insgesamt 1-mal geändert.

Ally
Beiträge: 170
Registriert: Do 11. Jun 2009, 09:25
OS, Lazarus, FPC: Win und Lazarus Stable release
CPU-Target: x64

Re: .txt Dateien in Programm einlesen

Beitrag von Ally »

Hallo R3dFox,

das könnte etwa so gehen:

Code: Alles auswählen

procedure ImportAntworten;
var
  Zeile: String;
  Antworten: TextFile;
  Werte: TStringArray;
begin
  try
    AssignFile(Antworten, '1234.txt'); // Datei zum lesen öffnen
    Reset(Antworten);
    while not EOF(Antworten) do
    begin
      // Eine Zeile aus der Datei lesen
      Readln(Antworten, Zeile);
      // und in seine Einzelteile zerlegen
      Werte := Zeile.Split(';');
      // Die Antworten könnte man dann in etwa so weiterverwenden.
      // Antwort01 := SrtToInt(Werte[0]);
      // Antwort02 := SrtToInt(Werte[1]);
      // Antwort03 := SrtToInt(Werte[2]);
      // .....
      // ...
    end;
  finally
    CloseFile(Antworten); // Datei schließen.
  end;
end;
Ungtetestet

Gruß Roland

R3dFox
Beiträge: 13
Registriert: Sa 23. Jan 2021, 12:33

Re: .txt Dateien in Programm einlesen

Beitrag von R3dFox »

Danke für die Mühe.
Leider bekomm ich eine Fehlermeldung für die Zeilen: 'Label1.Caption:=StrToInt(Werte[0]);' die lautet: 'unit12.pas(59,42) Error: Incompatible type for arg no. 1: Got "LongInt", expected "TTranslateString" '

Wo ist der Fehler? :roll:

PascalDragon
Beiträge: 276
Registriert: Mi 3. Jun 2020, 07:18
OS, Lazarus, FPC: L 2.0.8, FPC Trunk, OS Win/Linux
CPU-Target: Aarch64 bis Z80 ;)
Wohnort: München

Re: .txt Dateien in Programm einlesen

Beitrag von PascalDragon »

R3dFox hat geschrieben:
Sa 6. Feb 2021, 16:20
Danke für die Mühe.
Leider bekomm ich eine Fehlermeldung für die Zeilen: 'Label1.Caption:=StrToInt(Werte[0]);' die lautet: 'unit12.pas(59,42) Error: Incompatible type for arg no. 1: Got "LongInt", expected "TTranslateString" '

Wo ist der Fehler? :roll:
Wenn dein Werte[ 0 ] einen String zurückgibt und du das an eine Eigenschaft vom Typ String (wie TLabel.Caption) zuweist, dann brauchst du natürlich keine Umwandung (in diesem Fall das StrToInt). Ally ist im Beispiel davon ausgegangen, dass die AntwortX Variablen vom Typ Integer sind, dann muss das natürlich umgewandelt werden.
FPC Compiler Entwickler

R3dFox
Beiträge: 13
Registriert: Sa 23. Jan 2021, 12:33

Re: .txt Dateien in Programm einlesen

Beitrag von R3dFox »

Oh, klingt logisch und hat auch funktioniert. Besten Dank!! :)

Antworten