AGB  ·  Datenschutz  ·  Impressum  







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

Save dialog

Ein Thema von skaven · begonnen am 29. Okt 2004 · letzter Beitrag vom 29. Okt 2004
Antwort Antwort
skaven

Registriert seit: 13. Okt 2004
87 Beiträge
 
#1

Save dialog

  Alt 29. Okt 2004, 10:24
Hallo zusammen, hab mal wieder ne Frage, lol.

Und zwar würde ich gerne fortlaufende Befehle aus der Variablen Liste[i] in einer textdatei speicher, aber das einzige was mein programm macht ist den opendialog zu saven, aber das will ichz nicht, er soll die neuen Meßwerte der variablen speichern.
Habt Ihr ne Idee.

Hänge mal einen Ausschnitt aus meinem Programm an.

Delphi-Quellcode:
    begin
    AssignFile(FromF, liste[i]);
    Reset(FromF, 1);   { Datensatzgröße = 1 }
  if SaveDialog1.Execute then { Dialog zum Speichern anzeigen }
    begin
      AssignFile(ToF, SaveDialog1.FileName);   { Ausgabedatei öffnen }

      Rewrite(ToF, 1);   { Datensatzgröße = 1 }
      Canvas.TextOut(10, 10, 'Kopieren von ' + IntToStr(FileSize(FromF))
        + ' Byte...');
      repeat
        BlockRead(FromF, Buf, SizeOf(Buf), NumRead);
        BlockWrite(ToF, Buf, NumRead, NumWritten);
      until (NumRead = 0) or (NumWritten <> NumRead);
        CloseFile(FromF);
        CloseFile(ToF);
    end;
   end;
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Save dialog

  Alt 29. Okt 2004, 10:27
Hier stand Mist.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
skaven

Registriert seit: 13. Okt 2004
87 Beiträge
 
#3

Re: Save dialog

  Alt 29. Okt 2004, 10:34
Das ist nicht das Problem, diese Funktion arbeitet auch mit meinem Programm.
Das Problem ist, das die gespeicherte Datei eine exakte Kopie der aufgerufenen Datei im open dialog entpricht.
Dabei sollte diese Datei nicht kopiert werden, sondern fortlaufende variablen werte der liste[i] gespeichert werden.

In der Zeile Reset wird mir immer ein Fehler angezeigt.
  Mit Zitat antworten Zitat
Benutzerbild von Steve
Steve

Registriert seit: 2. Mär 2004
Ort: Würzburg
730 Beiträge
 
Delphi 2006 Personal
 
#4

Re: Save dialog

  Alt 29. Okt 2004, 11:05
Liste[i] sind variable Werte? und AssignFile(FromF,Liste[i]) soll ne Datei öffnen?
Ich versteh nicht ganz, was Du machen möchtest, aber AssignFile erwartet als 2. Parameter den Dateinamen, d.h. Liste[i] muss einem Dateinamen entsprechen.. möchtest Du aber Liste[i] in eine Datei speichern, muss Du nur ToF erzeugen und dort Liste[i] reinschreiben...

Gruß
Stephan
Stephan B.
Wer andern eine Grube gräbt ist Bauarbeiter!
Wer im Glashaus sitzt, sollte sich lieber im Dunkeln ausziehen!
Außerdem dieser Satz kein Verb...
  Mit Zitat antworten Zitat
skaven

Registriert seit: 13. Okt 2004
87 Beiträge
 
#5

Re: Save dialog

  Alt 29. Okt 2004, 11:09
Hi steve, habe das mit dem tof nicht verstanden,

was muß ich wo ändern?

Hab mal das Programm etwas abgeändert, aber wo muß ich da jetzt meine laufvariable einfügen, in der ich immer weider neue werte bekomme, und die ich hintereinander in einer datei speichern will.

Delphi-Quellcode:
 begin
   AssignFile(FromF, OpenDialog1.FileName);
    Reset(FromF, 1);   { Datensatzgröße = 1 }
  if SaveDialog1.Execute then { Dialog zum Speichern anzeigen }
    begin
     AssignFile(ToF, SaveDialog1.FileName);   { Ausgabedatei öffnen }

   Rewrite(ToF, 1);   { Datensatzgröße = 1 }
     Canvas.TextOut(10, 10, 'Kopieren von ' + IntToStr(FileSize(FromF))
      + ' Byte...');
     repeat
       BlockRead(FromF, Buf, SizeOf(Buf), NumRead);
       BlockWrite(ToF, Buf, NumRead, NumWritten);
     until (NumRead = 0) or (NumWritten <> NumRead);
       CloseFile(FromF);
       CloseFile(ToF);
   end;
  Mit Zitat antworten Zitat
Benutzerbild von Steve
Steve

Registriert seit: 2. Mär 2004
Ort: Würzburg
730 Beiträge
 
Delphi 2006 Personal
 
#6

Re: Save dialog

  Alt 29. Okt 2004, 11:14
Nunja, du brauchst kein FromF, da Du ja nix aus einer anderen Datei lesen willst, sondern lediglich schreiben, wenn ich Dich richtig verstanden hab... und schreiben musste dann statt Buf halt lines[i]. (Und ne Schleife über i) Falls Du nur Lines[i], welches wohl immer vom gleichen Typ ist, schreiben möchtest, würde ich an Deiner Stelle lieber eine Delphi-Referenz durchsuchentypisierte Datei benutzen und mit Delphi-Referenz durchsuchenWrite arbeiten.

Gruß
Stephan
Stephan B.
Wer andern eine Grube gräbt ist Bauarbeiter!
Wer im Glashaus sitzt, sollte sich lieber im Dunkeln ausziehen!
Außerdem dieser Satz kein Verb...
  Mit Zitat antworten Zitat
skaven

Registriert seit: 13. Okt 2004
87 Beiträge
 
#7

Re: Save dialog

  Alt 29. Okt 2004, 11:18
Stimmt, ich will nur schreiben.

Möchet am Anfang des Programmes eine Datei auswählen in der ich speicher, und in dieser fortlaufende strings einlesen und saven.

Was ist denn dafür zu ändern?
  Mit Zitat antworten Zitat
Benutzerbild von Steve
Steve

Registriert seit: 2. Mär 2004
Ort: Würzburg
730 Beiträge
 
Delphi 2006 Personal
 
#8

Re: Save dialog

  Alt 29. Okt 2004, 11:28
Nur Strings schreiben? Dann nimm entweder ne StringList, die kannste mit Delphi-Referenz durchsuchenSaveToFile direkt und ohne "tiefer gehen" zu müssen speichern.
Oder nimm ein Delphi-Referenz durchsuchenTextFile, da kannste mit Delphi-Referenz durchsuchenWriteLn die Strings zeilenweise schreiben

Ganz grob:
Delphi-Quellcode:
SL : TStringList;
F : TextFile;
...

//1. Möglichkeit:
SL.SaveToFile(aFileName);


//2. Möglichkeit:
AssignFile(F,aFileName);
Rewrite(F);
..
WriteLn(F,Lines[i]);
Closefile(F);
Gruß
Stephan
Stephan B.
Wer andern eine Grube gräbt ist Bauarbeiter!
Wer im Glashaus sitzt, sollte sich lieber im Dunkeln ausziehen!
Außerdem dieser Satz kein Verb...
  Mit Zitat antworten Zitat
skaven

Registriert seit: 13. Okt 2004
87 Beiträge
 
#9

Re: Save dialog

  Alt 29. Okt 2004, 11:50
das mit dem writeln funktioniert nicht.

Fehlermeldung, ungültiger Typ. Obwohl es eine Stringvariable ist.
  Mit Zitat antworten Zitat
Benutzerbild von Steve
Steve

Registriert seit: 2. Mär 2004
Ort: Würzburg
730 Beiträge
 
Delphi 2006 Personal
 
#10

Re: Save dialog

  Alt 29. Okt 2004, 12:10
Sry, aber das muss so gehen!
Stephan B.
Wer andern eine Grube gräbt ist Bauarbeiter!
Wer im Glashaus sitzt, sollte sich lieber im Dunkeln ausziehen!
Außerdem dieser Satz kein Verb...
  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 16:39 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