AGB  ·  Datenschutz  ·  Impressum  







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

Array aus TFileStream auslesen?

Offene Frage von "mo_greene"
Ein Thema von mo_greene · begonnen am 13. Jun 2008 · letzter Beitrag vom 13. Jun 2008
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
mo_greene

Registriert seit: 10. Dez 2006
Ort: Berlin
136 Beiträge
 
Turbo Delphi für Win32
 
#1

Array aus TFileStream auslesen?

  Alt 13. Jun 2008, 14:01
Hallo,


ich habe ein dynamisches Array, welches ich zur Laufzeit in ein TFileStream speicher:

FS.Write(Zutaten, sizeOF(Zutaten)); Beim Neustart des Programms, soll aus diesem TFileStream das Array wieder ausgelesen werden.

FS.Read(Zutaten, sizeOF(Zutaten));


Leider funktioniert das nicht. Ich bekomme keine Fehlermeldung, jedoch ist das Array nach dem auslesen aus der Datei leer.

Was habe ich falsch gemacht? Geht das überhaupt so?

Vielen Dank!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Array aus TFileStream auslesen?

  Alt 13. Jun 2008, 14:04
Das SizeOf beim Laden wird dir eine andere Größe liefern als beim Speichern. Speichere die Größe mit ab
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

Re: Array aus TFileStream auslesen?

  Alt 13. Jun 2008, 14:05
Hi mo_greene,

Zitat von mo_greene:
Geht das überhaupt so?
Nein so geht es leider nicht SizeOf(Zutaten) ergibt 4, denn Zutaten selbst ist nur ein Pointer auf die Array-Daten. Du musst dein Array mit einer for-Schleife in die Datei schreiben und auch wieder auslesen.

Vergiss nicht die Größe des Arrays auch in der Datei abzuspeichern damit du nachher weißt wie viel du einlesen kannst

Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
mo_greene

Registriert seit: 10. Dez 2006
Ort: Berlin
136 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Array aus TFileStream auslesen?

  Alt 13. Jun 2008, 14:07
Super vielen Dank für die Antwort.

Kann ich die Daten aus meinem Array in die gleiche Datei speichern, in die auch meine anderen Daten aus div. Variablen gespeichert werden?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Array aus TFileStream auslesen?

  Alt 13. Jun 2008, 14:08
Warum nicht?
Markus Kinzler
  Mit Zitat antworten Zitat
mo_greene

Registriert seit: 10. Dez 2006
Ort: Berlin
136 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Array aus TFileStream auslesen?

  Alt 13. Jun 2008, 14:09
Ok super.

Zitat:
Du musst dein Array mit einer for-Schleife in die Datei schreiben und auch wieder auslesen.

Vergiss nicht die Größe des Arrays auch in der Datei abzuspeichern damit du nachher weißt wie viel du einlesen kannst Wink
Wie mache ich das denn genau?

Danke
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Array aus TFileStream auslesen?

  Alt 13. Jun 2008, 14:13
Delphi-Quellcode:
FS.Write ( Length( Zutaten);
for i := 0 to Length( Zutaten) do
begin
    FS.Write( Zutaten[i], SizeOf( TZutaten));
end;
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#8

Re: Array aus TFileStream auslesen?

  Alt 13. Jun 2008, 14:15
Hi,

Naja du weißt doch wie man auf einzelne Elemente des Arrays zugreift.

In einer Schleife geht das so:

Delphi-Quellcode:
for i:= 0 to High(Array) do
  // Etwas mit Array[i] tun
Die größe des Arrays erhälst du mit

Length(Array); @mkinzler: Sagmal hast du so ne Taste auf der Tastatur die automatisch richtig auf alle aktuellen Threads in der DP antwortet ?

Ha! Von wegen richtig. Hast ne Klammer vergessen und es muss von 0 bis High(Array) gehn und nicht bis Length(Array)

Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Array aus TFileStream auslesen?

  Alt 13. Jun 2008, 14:18
Ok die Klammer hab ich verschlammpt.
Aber bei dynamischen Arrays (welchen immer bei 0 beginnen) sollte High(), das selbe wie Length() ergeben.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#10

Re: Array aus TFileStream auslesen?

  Alt 13. Jun 2008, 14:19
Probiers aus
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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 22:29 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