AGB  ·  Datenschutz  ·  Impressum  







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

StreamDatei öffnen ohne OpenDialog.Execute

Ein Thema von moperswings · begonnen am 22. Okt 2004 · letzter Beitrag vom 1. Nov 2004
Antwort Antwort
Seite 1 von 2  1 2      
moperswings

Registriert seit: 27. Mai 2004
Ort: Bad Sooden-Allendorf
240 Beiträge
 
Delphi 6 Professional
 
#1

StreamDatei öffnen ohne OpenDialog.Execute

  Alt 22. Okt 2004, 09:01
Hallo,

ich habe eine StreamDatei gespeichert unter einem Namen, der in einem
Edit-Feld eingetragen wurde:

pfad := Edit1.Text + '.dat';
Stream := TFileStream.Create(pfad, fmCreate);

Ich umgehe so den SaveDialog.Execute.

Wenn ich aber aus einer FileListBox den Datensatz auswähle und zurück
zu dem Edit-Feld schicke, was muss ich machen, das die dazugehörigen Daten geöffnet werden, ohne OpenDialog.Execute Abfrage?
Der umgekehrte Weg funktioniert nicht so wie die Speicherung :-(
Hat jemand eine Idee, was ich machen muss?

Viele Grüsse

Dirk
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: StreamDatei öffnen ohne OpenDialog.Execute

  Alt 22. Okt 2004, 09:04
Warum sollte der umgekehrte Weg nicht gehen? Wenn der Pfad und Dateiname stimmt, sehe ich da kein Problem.

"Nicht gehen" ist übrigens eine sehr hilfreiche Fehlerbeschreibung.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
moperswings

Registriert seit: 27. Mai 2004
Ort: Bad Sooden-Allendorf
240 Beiträge
 
Delphi 6 Professional
 
#3

Re: StreamDatei öffnen ohne OpenDialog.Execute

  Alt 22. Okt 2004, 09:24
Hallo Michael,

warum es umgekehrt nicht funktioniert, weiss ich nicht:

meine Procedure wäre (jetzt aus dem Kopf):

Delphi-Quellcode:
dsmax: Maximale Anzahl Datensätze
dsOpen: Datensätze öffnen (Edit1.Text := Feld)

pfad := Edit1.Text
Stream := TFileStream.Create(pfad, fmOpenRead);
Stream.ReadBuffer(dsmax, SizeOf(Word));
for i := dsmax - 1 downto 0 do
Stream.ReadBuffer(Daten[i], SizeOf(TDaten);
dsOpen;
Stream.Free;
Vielleicht siehst Du ja jetzt den Fehler!
Bekommst auch im MT ein Bier von mir!!!

Dirk

[edit=Luckie]Delphi-Tags eingefügt. Beim nächsten mal bitte selber machen. Mfg, Luckie[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: StreamDatei öffnen ohne OpenDialog.Execute

  Alt 22. Okt 2004, 09:28
Du musst eine Struktur angeben als Buffer für ReadBuffer und nicht die Anzahl, die du lesen willst. Und als Größe eben die Größe der Struktur. Dann gehst du die Datei so lange durch und rufst in der Schleife ReadBuffer auf, bist du am Ende der Datei bist.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
moperswings

Registriert seit: 27. Mai 2004
Ort: Bad Sooden-Allendorf
240 Beiträge
 
Delphi 6 Professional
 
#5

Re: StreamDatei öffnen ohne OpenDialog.Execute

  Alt 22. Okt 2004, 09:34
Und wie schreibe ich diese Struktur?
Ich stehe ein wenig auf dem Schlauch!

Dirk
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: StreamDatei öffnen ohne OpenDialog.Execute

  Alt 22. Okt 2004, 09:37
Du musst doch wissen, wie deine Daten aussehen die du lesen willst. Wie schreibst du denn rein?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
moperswings

Registriert seit: 27. Mai 2004
Ort: Bad Sooden-Allendorf
240 Beiträge
 
Delphi 6 Professional
 
#7

Re: StreamDatei öffnen ohne OpenDialog.Execute

  Alt 22. Okt 2004, 09:44
Delphi-Quellcode:
procedure TForm1.save1();
var
  i: integer;
  pfad: string;
begin
  pfad := Edit1.Text + '.dat';
  Stream := TFileStream.Create(pfad, fmCreate);
  dsSave;
  Stream.WriteBuffer(dsmax, SizeOf(Word));
  for i := dsmax - 1 downto 0 do
  Stream.WriteBuffer(Daten, SizeOf(TDaten));
  Stream.Free,
end;
Dirk
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

Re: StreamDatei öffnen ohne OpenDialog.Execute

  Alt 22. Okt 2004, 09:47
Und wie sieht Daten aus? Und was steht nachher bei dir in Daten drinne? Und wie äußert sich das "nicht funktionieren"?

Gibt doch einfach mal alle Informationen, die relevant sind.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#9

Re: StreamDatei öffnen ohne OpenDialog.Execute

  Alt 22. Okt 2004, 09:52
VIelleicht solltest du einfach mal sagen, was denn das Problem ist? Kommt ne Fehlermeldung oder sonstwas?
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
moperswings

Registriert seit: 27. Mai 2004
Ort: Bad Sooden-Allendorf
240 Beiträge
 
Delphi 6 Professional
 
#10

Re: StreamDatei öffnen ohne OpenDialog.Execute

  Alt 22. Okt 2004, 10:15
Der Rest vom Code der wichtig sein könnte

Delphi-Quellcode:
Implementierung
   Type
   TDaten = record;
   Feld1, Feld1: String[20];
   end;
var
   Stream: TFileStream;
   Daten: array of TDaten;
   Index: Byte = 0;
   dsmax: Word = 1;

procedure dsSave
begin
   with Daten[Index] do begin
   Feld1 := Edit1.Text; // bei dsOpen ist es umgekehrt
   Feld2 := Edit2.TExt;
   end;
end;

procedure TForm
begin
   SetLength(Daten, dsmax);
end;

Wenn ich die Datei in der FileListBox anklicke, wird der DateiName an Edit1 geschickt, der Rest der Felder bleibt leer und es geht nur noch
mit Anfang und Fehlermeldung[OK] weiter.
Die Fehlermeldung habe ich jetzt leider nicht zur Verfügung.

Dirk
  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 22:31 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