AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Problem beim einlesen einer Datei in einen Stream
Thema durchsuchen
Ansicht
Themen-Optionen

Problem beim einlesen einer Datei in einen Stream

Ein Thema von Chilled86 · begonnen am 13. Apr 2007 · letzter Beitrag vom 13. Apr 2007
Antwort Antwort
Seite 2 von 2     12   
CCRDude
(Gast)

n/a Beiträge
 
#11

Re: Problem beim einlesen einer Datei in einen Stream

  Alt 13. Apr 2007, 10:05
Zitat von lizardking:
An der Stelle sollte es eigentlich schon knallen. Versuch mal
    Stream.Read(@Len, SizeOf(Len));
Wieso? So intelligent ist Delphi schon, die Adresse zu verwenden ist da keineswegs notwendig (habe ich auf zwei Seiten voller gegrepter .Read-Aufrufe nie verwenden müssen ).
  Mit Zitat antworten Zitat
Chilled86

Registriert seit: 8. Apr 2007
Ort: Quierschied
17 Beiträge
 
Delphi 2005 Personal
 
#12

Re: Problem beim einlesen einer Datei in einen Stream

  Alt 13. Apr 2007, 10:07
Zitat von lizardking:
An der Stelle sollte es eigentlich schon knallen. Versuch mal

    Stream.Read(@Len, SizeOf(Len));
"Konstantenobjekt kann nicht als Var-Parameter weitergegeben werden"



***EDIT***
Len ist irgendwie immer gleichgroß, selbst wenn ich im Stream ne andere Datei öffne
Sven Schellberg
  Mit Zitat antworten Zitat
CCRDude
(Gast)

n/a Beiträge
 
#13

Re: Problem beim einlesen einer Datei in einen Stream

  Alt 13. Apr 2007, 10:14
Deswegen sag ich ja, daß die Adresse unnötig ist

Und eine Größe von $2D2D2D2D erscheint mir heftig, da bin ich mir unsicher, ob dynamische Arrays diese Größe überhaupt unterstützen? Außerdem erscheint mir $2D2D2D2D auch nicht wie das typische Größenfeld. Hat die Datei vielleicht am Anfang noch einen Header? Ich würd vorschlagen Du liest Dir den Anfang der Datei erstmal mit einen Hexeditor durch, bevor Du weiter Fehler im Code suchst
  Mit Zitat antworten Zitat
Chilled86

Registriert seit: 8. Apr 2007
Ort: Quierschied
17 Beiträge
 
Delphi 2005 Personal
 
#14

Re: Problem beim einlesen einer Datei in einen Stream

  Alt 13. Apr 2007, 10:19
Zitat von CCRDude:
Deswegen sag ich ja, daß die Adresse unnötig ist

Und eine Größe von $2D2D2D2D erscheint mir heftig, da bin ich mir unsicher, ob dynamische Arrays diese Größe überhaupt unterstützen? Außerdem erscheint mir $2D2D2D2D auch nicht wie das typische Größenfeld. Hat die Datei vielleicht am Anfang noch einen Header? Ich würd vorschlagen Du liest Dir den Anfang der Datei erstmal mit einen Hexeditor durch, bevor Du weiter Fehler im Code suchst
Die Datei hat keinen Header. Ist ne stink normale TXT Datei
Sven Schellberg
  Mit Zitat antworten Zitat
CCRDude
(Gast)

n/a Beiträge
 
#15

Re: Problem beim einlesen einer Datei in einen Stream

  Alt 13. Apr 2007, 10:29
Und warum versuchst Du dann, Binärfelder für Längen aus einer TEXT-Datei auszulesen?

Las mich raten... die ersten 4 Zeichen der Textdatei sind "----" - das entspricht dann Deiner "Länge"...

Du vermischt hier dann wohl zwei Sachen: typisierte Dateien mit Textdateien. Das wär auch "klassisch" ohne Streams (file of record vs. textfile) nicht machbar. Du mußt dann hier byteweise bis #13 bzw. #13#10 oder #10 auslesen etc...

PS: Wo ich mir das oben näher ansehe, merke ich auch, daß es um ICQ-Logs geht? Ja, die sind wahrscheinlich wirklich Text... da Du geschrieben hast, daß Du Dich mit Streams nicht genau auskennst, kennst Du ja vielleicht normale Textdateien wenigstens? Dann würde ich die empfehlen... Hier mal ein DelphiBasics-Beispiel.
  Mit Zitat antworten Zitat
Chilled86

Registriert seit: 8. Apr 2007
Ort: Quierschied
17 Beiträge
 
Delphi 2005 Personal
 
#16

Re: Problem beim einlesen einer Datei in einen Stream

  Alt 13. Apr 2007, 10:32
Zitat von CCRDude:
Und warum versuchst Du dann, Binärfelder für Längen aus einer TEXT-Datei auszulesen?

Las mich raten... die ersten 4 Zeichen der Textdatei sind "----" - das entspricht dann Deiner "Länge"...

Du vermischt hier dann wohl zwei Sachen: typisierte Dateien mit Textdateien. Das wär auch "klassisch" ohne Streams (file of record vs. textfile) nicht machbar. Du mußt dann hier byteweise bis #13 bzw. #13#10 oder #10 auslesen etc...
Das könnte natürlich mein Problem sein Hast du ein Tutorial wie das ganze funzt?
Sven Schellberg
  Mit Zitat antworten Zitat
Benutzerbild von TeronG
TeronG

Registriert seit: 19. Jul 2004
Ort: München
960 Beiträge
 
Delphi 2007 Professional
 
#17

Re: Problem beim einlesen einer Datei in einen Stream

  Alt 13. Apr 2007, 10:39
Wie gesagt ich bin kein Stream-Experte aber warum verwendest du nicht TMemoryStream? Das ding hat nämlich ein .LoadFromFile ...
龍 Der Unterschied zwischen Theorie und Praxis ist in der Praxis größer als in der Theorie.
  Mit Zitat antworten Zitat
CCRDude
(Gast)

n/a Beiträge
 
#18

Re: Problem beim einlesen einer Datei in einen Stream

  Alt 13. Apr 2007, 10:43
Naja, einen TMemoryStream kann man als Cache dazwischenschalten, aber prinzipiell würde ich fast nie TMemoryStream.LoadFromFile verwenden, solange die Größe der verwendeten Dateien beliebig sein kann. Eher blockweise von TFileStream nach TMemoryStream umkopieren, aber das ist für nen Streamneuling nicht wirklich das wahre...

Ein wirklich simples Beispiel, das eine einzelne Zeile in eine Textdatei schreibt und danach alle Zeilen dieser Datei nacheinander ausliest, ist schon in meinem PS darüber verlinkt. Nochmal grob das zeilenweise auslesen zusammengefasst:

Delphi-Quellcode:
var tf: TextFile;
    sLine: string;
begin
   AssignFile(tf, 'c:\meincqlog.txt');
   while not EoF(tf) do begin
      ReadLn(tf, sLine);
      DoSomethingWithText(sLine);
   end;
   CloseFile(tf);
end;
Ist zwar nicht bis ins letzte objektorientiert, aber manchmal muss man das mit der OO ja auch nicht übertreiben
  Mit Zitat antworten Zitat
Chilled86

Registriert seit: 8. Apr 2007
Ort: Quierschied
17 Beiträge
 
Delphi 2005 Personal
 
#19

Re: Problem beim einlesen einer Datei in einen Stream

  Alt 13. Apr 2007, 10:49
DANKE FÜR EURE HILFE!!!!
habs hinbekommen, und sorry dass ich als so dumme Fragen stell, bin halt noch Anfänger.
Sven Schellberg
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 08:27 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