DAU: Datei speichern und öffnen- Befehle gesucht.

Für Fragen von Einsteigern und Programmieranfängern...
xantor
Beiträge: 13
Registriert: So 5. Jul 2009, 20:29
OS, Lazarus, FPC: Winxp/98SE/Linux Mint Felicia (L 0.9.28 FPC 2.2.4)
CPU-Target: 32Bit
Wohnort: Südlich-Westlich von Berlin

DAU: Datei speichern und öffnen- Befehle gesucht.

Beitrag von xantor »

Hallo, ich habe folgendes Problem:
Ein größerer String soll in eine Textdatei geschreiben werden, die noch nicht existiert. Genausogut soll man die ersste Zeile der Datei aber auch später wieder auslesen können.

Mein Problem:

Ich finde einfach keine passende Befehlsbeipsiel wo gezeigt wird, wie man mit eine Datei öffnet. Ich habe den MenüPunkt "Datei öffnen" und "Datei speichern" Wie mache ich es jetzt, das 1. beim Click auf den MenüPunkt ein Öffnungsfenster angezeigt wird?(Ich habe bereits eine OpenDialog1 erstellt und die Eigenschaftten fertiggemacht, bekomm ihn aber leider nciht geöffnet über den Menüpunkt. Dann soll die ausgewählte Datei geöffnet werden und in einen String kommen. Danach kann die ann bearbeitet werden und dann soll sie (sofern schon vorhanden: wieder) gespeichert werden. Aber: WIe speichere ich dann die Datei mit dem Menüpunkt speichern zusammen?

Für das Problem mit dem Auslesen von einzelnen zeichen, habe ich hier schon eine Funktion gesehen, die ich schon so hinbekomme, aber wie öffne ich die???

Ich bin euch für die Hilfe echt dankbar...
Der DAU(wahrscheinlich...) (DAU=Dümmster anzunehmender User)
MFG
Xantor
MFG
Xantor

_X_
Beiträge: 250
Registriert: Di 16. Dez 2008, 20:13
OS, Lazarus, FPC: aptosid (aptosid.com); Lazarus SVN gtk2+qt4; FPC 2.4.0
CPU-Target: 32/64Bit

Re: DAU: Datei speichern und öffnen- Befehle gesucht.

Beitrag von _X_ »

Code: Alles auswählen

if opendialog.execute then begin
So öffnet man den Dialog.
Und in der Eigenschaft .Filename ist dann der Dateiname.

mfg _X_


xantor
Beiträge: 13
Registriert: So 5. Jul 2009, 20:29
OS, Lazarus, FPC: Winxp/98SE/Linux Mint Felicia (L 0.9.28 FPC 2.2.4)
CPU-Target: 32Bit
Wohnort: Südlich-Westlich von Berlin

Re: DAU: Datei speichern und öffnen- Befehle gesucht.

Beitrag von xantor »

Ich habe das mit dem Öffnen schon einmal relativ im Griff, aber wie arbeite ich denn mit dem Speichern?
ich habe die Variabel Auslag2(Auslagerung) und möchte sie speichern. Wie muss folgendes richtig heißen?

auslag2.was_sollte_hier_stehen?.SaveToFile(SaveDialog1.Filename);
MFG
Xantor

_X_
Beiträge: 250
Registriert: Di 16. Dez 2008, 20:13
OS, Lazarus, FPC: aptosid (aptosid.com); Lazarus SVN gtk2+qt4; FPC 2.4.0
CPU-Target: 32/64Bit

Re: DAU: Datei speichern und öffnen- Befehle gesucht.

Beitrag von _X_ »

Wieder

Code: Alles auswählen

if savedialog.execute then begin


Welcher Typ ist auslag2?
Wenn es eine TStringlist ist, dann geht es so:

Code: Alles auswählen

if savedialog.execute then begin
  auslag2.SaveToFile(savedialog.Filename);
end

mfg _X_

xantor
Beiträge: 13
Registriert: So 5. Jul 2009, 20:29
OS, Lazarus, FPC: Winxp/98SE/Linux Mint Felicia (L 0.9.28 FPC 2.2.4)
CPU-Target: 32Bit
Wohnort: Südlich-Westlich von Berlin

Re: DAU: Datei speichern und öffnen- Befehle gesucht.

Beitrag von xantor »

upps vergessen zu erwähnen, es ist ein einfacher String, wenn auch etwas langgezoegen...

--> Fhelermeldung bei dieser Vairante:

auslag2.Lines.SaveToFile(SaveDialog1.Filename);

aber die Datei muss doch och nicht existieren oder?
Zuletzt geändert von xantor am Mo 6. Jul 2009, 22:01, insgesamt 1-mal geändert.
MFG
Xantor

creed steiger
Beiträge: 957
Registriert: Mo 11. Sep 2006, 22:56

Re: DAU: Datei speichern und öffnen- Befehle gesucht.

Beitrag von creed steiger »

Kommt drauf an als was auslag2 definiert ist.

Ansonsten
http://www.delphibasics.co.uk/Article.asp?Name=Files

xantor
Beiträge: 13
Registriert: So 5. Jul 2009, 20:29
OS, Lazarus, FPC: Winxp/98SE/Linux Mint Felicia (L 0.9.28 FPC 2.2.4)
CPU-Target: 32Bit
Wohnort: Südlich-Westlich von Berlin

Re: DAU: Datei speichern und öffnen- Befehle gesucht.

Beitrag von xantor »

Also ich bekomm das einfach nicht hinl ,egal ob mit AssignFile(gibt es dafür eigentlich eine SchließOperation? oder mit SaveToFile
Ich habe hier mal meinen Code. Vllt findet ihr ja den Fehler...
Variablen:

Code: Alles auswählen

Form1: TForm1; 
  dmin, dmax, dberechnung, i: integer;
  pergebnis, emin, emax: extended;
  reset, gerechnet: boolean;
  auslagerung:string;
  auslag2:ansistring;
  (*print: Textfile;
  print:File Of TCustomer;
  Customer:TCustomer;*)

  print: File of ansistring;

und jetzt der Hauptcode

Code: Alles auswählen

IF gerechnet=TRUE
    THEN
      Begin
        auslag2:='|Startwert:'+IntToStr(dmin)+'|Endwert:'+IntToStr(dmax)+'| \n |Kundenkarte:'+ComboBox1.Caption+'| \n';
        i:=dmax-dmin;
        REPEAT
          Begin
            i:=i-1;
            auslag2:=auslag2+'\n |'+StringGrid1.Cells[1,i]+'  |  '+StringGrid1.Cells[3,i]+'|';
          end;
        until i=1;
        If SaveDialog1.Execute THEN
          Begin
            (*print := TStringList.Create;*)
 
            (*auslag2.SaveToFile(SaveDialog1.Filename);*)
            auslagerung:=SaveDialog1.Filename;
            AssignFile(print, auslagerung);
            ReWrite(print);
            write(auslag2);
            (*writeln(print); *)
            closeFile(print);
        end;
      end


Ich danke euch, zuerst für die schnelen ANtworten, die ich hier wirklich nicht erwartet habe und 2. für die Hilfe natürlich ;)
MFG
Xantor

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: DAU: Datei speichern und öffnen- Befehle gesucht.

Beitrag von theo »

Mach's doch mit ner Stringlist, das ist viel einfacher.

Code: Alles auswählen

If SaveDialog1.Execute then
begin
  SL:=TStringList.Create;
  SL.Add('Blah'); //Macht gleich Zeilenumbrüche, \n macht gar nix unter Delphi/Lazarus.
  SL.Add('Blah');
  etc.
  SL.SaveToFile(SaveDialog1.Filename);
  SL.Free;
end;

xantor
Beiträge: 13
Registriert: So 5. Jul 2009, 20:29
OS, Lazarus, FPC: Winxp/98SE/Linux Mint Felicia (L 0.9.28 FPC 2.2.4)
CPU-Target: 32Bit
Wohnort: Südlich-Westlich von Berlin

Re: DAU: Datei speichern und öffnen- Befehle gesucht.

Beitrag von xantor »

Das funktioniert sehr gut, danke ich hatte davon schon gelsen, konnte das aber nicht wirklich einsetzen, wie man oben in auskommenierten Überresten erkennt.
Aber
1. wenn ich "\n" in eine Textdatei packe, müsste man es doch eigentlich trotzdem erkennen oder?
und
2. Wie finde ich die ausgewählte Endung heraus?
MFG
Xantor

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: DAU: Datei speichern und öffnen- Befehle gesucht.

Beitrag von theo »

xantor hat geschrieben:1. wenn ich "\n" in eine Textdatei packe, müsste man es doch eigentlich trotzdem erkennen oder?

Ich weiss nicht wie du das meinst. \n wird schon geschrieben, aber es ist kein Zeilenumbruch. Das wäre je nach Plattform #10 oder #13#10
xantor hat geschrieben:2. Wie finde ich die ausgewählte Endung heraus?

Lies die Datei einfach wieder in eine TStringList ein und gut ist.

xantor
Beiträge: 13
Registriert: So 5. Jul 2009, 20:29
OS, Lazarus, FPC: Winxp/98SE/Linux Mint Felicia (L 0.9.28 FPC 2.2.4)
CPU-Target: 32Bit
Wohnort: Südlich-Westlich von Berlin

Re: DAU: Datei speichern und öffnen- Befehle gesucht.

Beitrag von xantor »

Das Problem ist ja, das die Datei zu diesem Augenblick noch gar nicht existiert, es soll bloß entschieden werden, je nachdem, ob es ein kurze Datei (.ava[entspricht normaler .txt, nur andeere Endung]) oder eine ausfürhliche Datei(.txt) ist was gespeichert werden soll...
MFG
Xantor

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: DAU: Datei speichern und öffnen- Befehle gesucht.

Beitrag von theo »

Klingt ziemlich seltsam. Ich verstehe dein Problem nicht. Meinetwegen brauchst du die Stringlist ja nicht in eine Datei speichern.

xantor
Beiträge: 13
Registriert: So 5. Jul 2009, 20:29
OS, Lazarus, FPC: Winxp/98SE/Linux Mint Felicia (L 0.9.28 FPC 2.2.4)
CPU-Target: 32Bit
Wohnort: Südlich-Westlich von Berlin

Re: DAU: Datei speichern und öffnen- Befehle gesucht.

Beitrag von xantor »

Habs hinbekommen... zwar umständlcih aber es geht...
also ich hab erstmal die Länge des Dateinamen mir gehohlt(x:=length(y);), danach x-3, für den Punkt, x-2 für 1.t,... rausgesucht und diese dann nacheinander in ifabfragen, verschachtelt, überprüft. Sofern jede Stelle stimte, muss es die gewählte Endung sein. Danach wird die Datei je nach Dateityp halt in Kurzform oder anschaulich in langform geschrieben.
MFG
Xantor

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: DAU: Datei speichern und öffnen- Befehle gesucht.

Beitrag von theo »

xantor hat geschrieben:Habs hinbekommen... zwar umständlcih aber es geht...
also ich hab erstmal die Länge des Dateinamen mir gehohlt(x:=length(y);), danach x-3, für den Punkt, x-2 für 1.t,... rausgesucht und diese dann nacheinander in ifabfragen, verschachtelt, überprüft. Sofern jede Stelle stimte, muss es die gewählte Endung sein. Danach wird die Datei je nach Dateityp halt in Kurzform oder anschaulich in langform geschrieben.


Du scheinst eine Vorliebe für "umständlich" zu haben. ;-)
So geht auch:
http://www.freepascal.org/docs-html/rtl ... leext.html

Antworten