AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Anfängerproblem: Array von einem Record aus Datei auslesen
Thema durchsuchen
Ansicht
Themen-Optionen

Anfängerproblem: Array von einem Record aus Datei auslesen

Ein Thema von De-Prinz · begonnen am 28. Apr 2005 · letzter Beitrag vom 30. Apr 2005
Antwort Antwort
De-Prinz

Registriert seit: 19. Nov 2004
7 Beiträge
 
#1

Anfängerproblem: Array von einem Record aus Datei auslesen

  Alt 28. Apr 2005, 17:34
Hallo, also ich habs eben schon mit der Suche probiert, aber das hat mich alles nur noch mehr verwirrt.

Ich habe nur Anfängerkenntnisse in Delphi und versuche mich vergebens daran, ein Array von Records aus einer einfachen Textdatei auszulesen. Ich kenne das auslesen aus einer Datei nur aus Pascal, aber das funzt nicht mit Delphi, da bekomme ich nur Fehlermeldungen.

Also hätte ich mal gerne euren Rat:

Folgende Struktur der Datei xy.dat

Satz[1].Frage:='Bla bla';
Satz[1].Antwort1:='bla';
Satz[1].Antwort2:='bla';
Satz[1].Antwort3:='bla';
Satz[1].Korrekt:='x';
.
.
.

Alles ausser Korrekt sind strings, das korrekt soll ein char werden. Wie gehe ich jetzt am besten vor um die Datei in Delphi auszulesen.
Und ja ich weiss, dass ähnliche Probleme schon gestellt worden sind, aber wie gesagt, ich kenne mich da nicht aus und es gibt ja anscheinend auch mehrere Arten eine Datei auszulesen.

Gruß
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 11. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#2

Re: Anfängerproblem: Array von einem Record aus Datei ausles

  Alt 28. Apr 2005, 17:39
Delphi-Quellcode:
 var datei : TStringList;
    s:string;
begin
 datei := TStringList.Create;
 datei.LoadFromFile('xy.dat');
 // bearbeiten...
 s := datei.Strings[2]; // <<<--- dritte linie in der datei, z.b.
 //

 // sowiel hast du ausgelesen :
 Caption := 'Gelesen: '+IntToStr(datei.Count);
 datei.Free;
end;
EDIT:
Und ja Willkommen.
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#3

Re: Anfängerproblem: Array von einem Record aus Datei ausles

  Alt 28. Apr 2005, 17:39
Hier, schau dir mal dieses Tutorial an, da lernst du, wie man mit Filestreams arbeitet.
Du musst nämlich erst die Länge des Strings und dann des String selbst hinenschreiben, da der String ja verschieden lang sein kann ...

http://www.dsdt.info/tutorials/streams/
  Mit Zitat antworten Zitat
De-Prinz

Registriert seit: 19. Nov 2004
7 Beiträge
 
#4

Re: Anfängerproblem: Array von einem Record aus Datei ausles

  Alt 28. Apr 2005, 17:43
Vielen Dank schonmal für die 2 Antworten, ich werde den Quelltext mal probieren und mir das Tut mal anschauen und euch dann höchstwahrscheinlich nochma nerven
  Mit Zitat antworten Zitat
simonit

Registriert seit: 25. Apr 2005
15 Beiträge
 
#5

Re: Anfängerproblem: Array von einem Record aus Datei ausles

  Alt 28. Apr 2005, 18:18
Allerdings kann man es auch mit der Methode aus Pascal machen, da du dich dort sicherlich leichter tun wirst:

Delphi-Quellcode:
var datei:=textfile;
count:integer; //zählvariable
begin
{$I-}
    AssignFile(datei,Dateinamenstring);//
    reset(datei);
    if IOResult <> 0 THEN
      rewrite(datei); //ist die Datei nicht vorhanden wird sie angelegt.
  {$I+}
    while (not seekeof(datei)) do
    begin
      readln(datei,Satz[count].Frage);
      readln(datei,Satz[count].Antwort1);
      readln(datei,Satz[count].Antwort2);
            //usw.

      count:=count+1;
    end;
  closefile(datei);
end;
count stellt eine Zählvariable dar, solltest du eine größere TextDatei in mehrere Positionen des Arrays einlesen wollen. Ist jeweils nur eine Zeile einzulesen, schreib einfach nur ein readln hin Diese Struktur setzt allerdings eine Datei folgender Form voraus:

Delphi-Quellcode:
Bla bla
antwort1
Antwort2
Antwort3
eine Readln-anweisung liest dir dabei jeweils eine Zeile der Textdatei ein.

Edit: Wenn deine Datei so wie oben beschrieben schon besteht kann man sie relativ einfach mit einem Filter auf das gewünschte risultat bringen.

mfg matthias
Matthias
  Mit Zitat antworten Zitat
De-Prinz

Registriert seit: 19. Nov 2004
7 Beiträge
 
#6

Re: Anfängerproblem: Array von einem Record aus Datei ausles

  Alt 29. Apr 2005, 20:45
Also ich hatte gerade Zeit mal alles zu probieren. Resultat: Viele Fehlermeldungen und schlechte Laune

Also mit dem Tutorial kam ich leider nicht zurecht, da der angegebene Quellcode Fehlermeldungen produziert hat und ich erst gar nichts zum laufen bekommen hab.
Das beste Resultat hatte ich mit der Idee von sniper_w, allerdings hat der mir immer eine 6 ausgegeben?! Also egal welche Zeile ich angegeben hab oder was in der Datei stand, ich hab immer "gelesen: 6" bekommen. Kann sich da einer den fehler denken?
  Mit Zitat antworten Zitat
Benutzerbild von idontwantaname
idontwantaname

Registriert seit: 31. Aug 2004
Ort: Traiskirchen
575 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Anfängerproblem: Array von einem Record aus Datei ausles

  Alt 29. Apr 2005, 21:06
gelesen: 6 bezieht sich auf die anzahl der zeilen
Oliver Hanappi
Besucht meine neue Homepage: http://oli.hux.de
  Mit Zitat antworten Zitat
De-Prinz

Registriert seit: 19. Nov 2004
7 Beiträge
 
#8

Re: Anfängerproblem: Array von einem Record aus Datei ausles

  Alt 30. Apr 2005, 00:54
ich trottel
  Mit Zitat antworten Zitat
De-Prinz

Registriert seit: 19. Nov 2004
7 Beiträge
 
#9

Re: Anfängerproblem: Array von einem Record aus Datei ausles

  Alt 30. Apr 2005, 12:16
Also ich muss mich an dieser Stelle mal für die Hilfe bedanken. Proggi läuft hervorragend!!!

Ich lese die Daten zwar nicht als ein Array von einem Record ein, aber so geht das auch mit dem Zeilenweisen auslesen.

Problem behoben
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz