AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Aus Datei auslesen

Offene Frage von "kaschte"
Ein Thema von kaschte · begonnen am 12. Aug 2006 · letzter Beitrag vom 13. Aug 2006
Antwort Antwort
Seite 1 von 2  1 2      
kaschte

Registriert seit: 2. Apr 2006
72 Beiträge
 
#1

Aus Datei auslesen

  Alt 12. Aug 2006, 17:42
Ich möchte den Inhalt einer Datei in ner Variable speichern. Wie geht das? Krieg das irgendwie nicht so richtig hin.
  Mit Zitat antworten Zitat
droppi
(Gast)

n/a Beiträge
 
#2

Re: Aus Datei auslesen

  Alt 12. Aug 2006, 18:07
Guck dir mal typisierte Dateien an. Da musst du natürlich wissen welche Stuktur die Datei hat um die Daten darin sinnvoll weiter zu verwenden. Wenn du Dir nich sicher bist kannst du die Datei auch in eine Variable vom Typ Textfile oder sie Zeilenweise in eine Stinglist einlesen. Es kommt halt immer darauf an was du mit den Daten machen willst.
  Mit Zitat antworten Zitat
kaschte

Registriert seit: 2. Apr 2006
72 Beiträge
 
#3

Re: Aus Datei auslesen

  Alt 12. Aug 2006, 18:09
In der Datei(.txt) steht nur ein einziges Wort und das ist ein Name eines Registryeintrages, den brauch ich dann später für die Registry.
  Mit Zitat antworten Zitat
Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#4

Re: Aus Datei auslesen

  Alt 12. Aug 2006, 18:13
Welches Verfahren am sinnvollsten ist, hängt doch sehr von der Art der Datei an und davon, was Du damit machen willst:

1. Einfache Textdatei zur Anzeige:
Memo1.Lines.LoadFromFile(sDateiname); 2. Einfache Textdatei zur internen Bearbeitung:
StringList1.LoadFromFile(sDateiname); 3. Formatierte Textdatei:
Delphi-Quellcode:
RichEdit2.PlainText := False;
RichEdit2.Lines.LoadFromFile(Path);
4. Binäre Datei:
Delphi-Quellcode:
FileStream1 := TFileStream.Create(sDateiname, fmOpenRead);
FileStream1.Read( aBuffer, 128 );
Also denke bitte nochmals genauer nach und teile uns das auch mit, was Du willst... Jürgen

Nachtrag:
Zitat von kaschte:
In der Datei(.txt) steht nur ein einziges Wort und das ist ein Name eines Registryeintrages, den brauch ich dann später für die Registry.
Das entspricht am ehesten meinem 2. Vorschlag. Zur weiteren Verarbeitung kannst Du verwenden:
Delphi-Quellcode:
s0 := StringList1[0];
// oder
s0 := StringList1.Text;
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Aus Datei auslesen

  Alt 12. Aug 2006, 18:18
INI- und XML-Dateien sind oft auch ganz praktisch.

Grüße
Faux
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Aus Datei auslesen

  Alt 12. Aug 2006, 18:18
Hallo kaschte,

oder so...

Delphi-Quellcode:
var Datei:Textfile;
    Zeile:string;
begin
  assignfile(Datei, 'Datei.txt');
  reset(Datei);
  try
    while not Eof(Datei) do begin
      readln(Datei, Zeile);
      // hier kann man nun die einzelnen Zeilen weiterverarbeiten
    end;
  finally
    closefile(Datei);
  end;
end;
Edit: reset-Position korrigiert.

Gruss
Thorsten
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#7

Re: Aus Datei auslesen

  Alt 13. Aug 2006, 11:06
Hallo,

eine kleine Korrektur: der Reset-Befehl sollte aus der TRY-Anweisung herausgenommen werden, damit im Fehlerfall nicht versucht wird, eine nicht offene Datei zu schließen.

Gruß Hawkeye
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Aus Datei auslesen

  Alt 13. Aug 2006, 17:10
Wieso das?

Ein assignfile funktioniert immer und erzeugt ein Handle. closefile gibt dieses Handle wieder frei. Die erste Zeile in der ein Fehler entstehen kann ist die Zeile in der reset(Datei); steht. Also ist diese Vorgehensweise genau richtig, weil sonst ein Fehler beim Öffnen verhindern würde das das Handle wieder freigegeben wird.

Verwunderte Grüsse
Thorsten
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#9

Re: Aus Datei auslesen

  Alt 13. Aug 2006, 17:27
Hallo Thorsten,

AssignFile funktioniert immer, soweit ist alles richtig. Das Handle wird aber erst durch ein erfolgreiches Reset/Rewrite/Append zugewiesen. Nur im Erfolgsfall muß also dieses Handle durch CloseFile wieder freigegeben werden. Verbleibt das Reset in der TRY-Anweisung, werden im Fehlerfall zwei Meldungen ausgegeben. Die erste erscheint bei Reset (z.B. "Datei nicht gefunden"), die zweite bei CloseFile ("Datei nicht geöffnet").

Gruß Hawkeye
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Aus Datei auslesen

  Alt 13. Aug 2006, 17:51
Hallo Hawkeye219,

du hast recht. Allerdings kommen die beiden Fehlermeldungen nur wenn man per einzel Schritt durch die Zeilen geht, ausgegeben wird nur eine. Habe mir das mit MemProof nochmal angesehen und bei deiner Variante bleiben weniger Problemsituationen über als bei meiner. Na gut, also das reset ausserhalb des try-finally-Blocks, sieht zwar hässlich aus aber nun gut.

Gruss
Thorsten
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 14:01 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