Einzelnen Beitrag anzeigen

Benutzerbild von ZeroX1337
ZeroX1337

Registriert seit: 17. Jul 2014
Ort: Siegen
28 Beiträge
 
Delphi XE6 Starter
 
#22

AW: Firemonkey abspeichern (iOS)

  Alt 7. Aug 2014, 10:36
Warum soll ich einen Quellcode posten, wenn der hier bereits gepostet wurde und ich diesen verwendet habe?

Unter iOS kannst Du alles was Du willst unter TPath.GetDocumentsPath speichern. Unter diesem Ordner kannst Du auch beliebige Unterordner anlegen.
Wenn Du nur paar Edits speichern willst und auf eine Datenbank verzichten kannst, dann speicher und lade alles z.B. über eine Stringlist.

Speichern:
Delphi-Quellcode:
var
  sl: TStringlist;
begin
  sl := TStringList.Create;

  sl.add(edit1.text);
  sl.add(edit2.text);
  sl.add(edit3.text);
  sl.add(edit4.text);

  sl.SaveToFile(TPath.GetDocumentsPath+TPath.DirectorySeparatorChar+'einstellungen.txt');
end;
Laden:
Delphi-Quellcode:
var
  sl: TStringlist;
begin
  sl := TStringList.Create;
  sl.LoadFromFile(TPath.GetDocumentsPath+TPath.DirectorySeparatorChar+'einstellungen.txt');

  edit1.text := sl[0];
  edit2.text := sl[1];
  edit3.text := sl[2];
  edit4.text := sl[3];
end;
Den Quellcode von "Laden" habe ich halt in "FormCreate" gepackt, damit er immer die Einstellungen lädt, die zuletzt gespeichert wurden. Aber wie gesagt, die App stürzt dann sofort ab.

Aber hier mal mein Code zu Laden/Speichern.

Speichern:
Delphi-Quellcode:
procedure THeaderFooterwithNavigation.B_speichernClick(Sender: TObject);
var
    Daten: TStringList;
begin
if MessageDlg('Möchten Sie die Datei wirklich speichern? Die zuletzt gespeicherte Datei wird dabei überschrieben.',
    TMsgDlgType.mtConfirmation, [TMsgDlgBtn.mbYes, TMsgDlgBtn.mbNo], 0, TMsgDlgBtn.mbYes) = mrYes then
  begin
    Daten := TStringList.Create;

    //Kopf
    Daten.Add(E_auftragnr.text);
    Daten.Add(E_montagefirma.text);
    Daten.Add(E_maschinentyp.text);
    Daten.Add(E_artderarbeit.text);
    Daten.Add(E_servicetechniker.text);
    Daten.Add(IntToStr(E_land.itemindex));
    Daten.Add(E_komnr.text);
    Daten.Add(DateToStr(D_montagezeitvon.date));
    Daten.Add(DateToStr(D_montagezeitbis.date));

    //Mitte
    Daten.Add(DateToStr(D_datummo.date));
    Daten.Add(DateToStr(D_datumdi.date));
    Daten.Add(DateToStr(D_datummi.date));
    Daten.Add(DateToStr(D_datumdo.date));
    Daten.Add(DateToStr(D_datumfr.date));
    Daten.Add(DateToStr(D_datumsa.date));
    Daten.Add(DateToStr(D_datumso.date));

    //Anreise
    Daten.Add(E_reisebeginnmo.text);
    Daten.Add(E_reisebeginndi.text);
    Daten.Add(E_reisebeginnmi.text);
    Daten.Add(E_reisebeginndo.text);
    Daten.Add(E_reisebeginnfr.text);
    Daten.Add(E_reisebeginnsa.text);
    Daten.Add(E_reisebeginnso.text);

    Daten.Add(E_reiseendemo.text);
    Daten.Add(E_reiseendedi.text);
    Daten.Add(E_reiseendemi.text);
    Daten.Add(E_reiseendedo.text);
    Daten.Add(E_reiseendefr.text);
    Daten.Add(E_reiseendesa.text);
    Daten.Add(E_reiseendeso.text);

    Daten.Add(IntToStr(C_zeitverschiebungmo.itemindex));
    Daten.Add(IntToStr(C_zeitverschiebungdi.itemindex));
    Daten.Add(IntToStr(C_zeitverschiebungmi.itemindex));
    Daten.Add(IntToStr(C_zeitverschiebungdo.itemindex));
    Daten.Add(IntToStr(C_zeitverschiebungfr.itemindex));
    Daten.Add(IntToStr(C_zeitverschiebungsa.itemindex));
    Daten.Add(IntToStr(C_zeitverschiebungso.itemindex));



    Daten.Add(E_rückreisereisebeginnmo.text);
    Daten.Add(E_rückreisereisebeginndi.text);
    Daten.Add(E_rückreisereisebeginnmi.text);
    Daten.Add(E_rückreisereisebeginndo.text);
    Daten.Add(E_rückreisereisebeginnfr.text);
    Daten.Add(E_rückreisereisebeginnsa.text);
    Daten.Add(E_rückreisereisebeginnso.text);

    Daten.Add(E_arbeitsbeginnmo.text);
    Daten.Add(E_arbeitsbeginndi.text);
    Daten.Add(E_arbeitsbeginnmi.text);
    Daten.Add(E_arbeitsbeginndo.text);
    Daten.Add(E_arbeitsbeginnfr.text);
    Daten.Add(E_arbeitsbeginnsa.text);
    Daten.Add(E_arbeitsbeginnso.text);

    //Memo Felder
    {Daten.Add(Memo_Arbeiten.Text);
    Daten.Add(Memo_Ersatzteile.Text); }


    //Variablen speichern
    //Anreise
    Daten.Add(FloatToStr(GesamtStundenMo));
    Daten.Add(FloatToStr(GesamtStundenDi));
    Daten.Add(FloatToStr(GesamtStundenMi));
    Daten.Add(FloatToStr(GesamtStundenDo));
    Daten.Add(FloatToStr(GesamtStundenFr));
    Daten.Add(FloatToStr(GesamtStundenSa));
    Daten.Add(FloatToStr(GesamtStundenSo));

    //Rückreise
    Daten.Add(FloatToStr(RückreiseGesamtStundenMo));
    Daten.Add(FloatToStr(RückreiseGesamtStundenDi));
    Daten.Add(FloatToStr(RückreiseGesamtStundenMi));
    Daten.Add(FloatToStr(RückreiseGesamtStundenDo));
    Daten.Add(FloatToStr(RückreiseGesamtStundenFr));
    Daten.Add(FloatToStr(RückreiseGesamtStundenSa));
    Daten.Add(FloatToStr(RückreiseGesamtStundenso));

    //Arbeit
    Daten.Add(FloatToStr(GesamtArbeitsStundenMo));
    Daten.Add(FloatToStr(GesamtArbeitsStundenDi));
    Daten.Add(FloatToStr(GesamtArbeitsStundenMi));
    Daten.Add(FloatToStr(GesamtArbeitsStundenDo));
    Daten.Add(FloatToStr(GesamtArbeitsStundenFr));
    Daten.Add(FloatToStr(GesamtArbeitsStundenSa));
    Daten.Add(FloatToStr(GesamtArbeitsStundenSo));

    //Gesamt
    Daten.Add(FloatToStr(GesamtStundenErgebnisMo));
    Daten.Add(FloatToStr(GesamtStundenErgebnisDo));
    Daten.Add(FloatToStr(GesamtStundenErgebnisMi));
    Daten.Add(FloatToStr(GesamtStundenErgebnisDo));
    Daten.Add(FloatToStr(GesamtStundenErgebnisFr));
    Daten.Add(FloatToStr(GesamtStundenErgebnisSa));
    Daten.Add(FloatToStr(GesamtStundenErgebnisSo));



    Daten.SaveToFile(TPath.GetDocumentsPath+TPath.DirectorySeparatorChar+'einstellungen.txt');

    showmessage('Ihre Eingaben wurden' +#13+ 'am '+ DateToStr(D_montagezeitvon.Date) +#13+ ' um '+ TimeToStr(Now) +#13+ ' erfolgreich gespeichert!');
end;
end;
Laden:
Delphi-Quellcode:
procedure THeaderFooterwithNavigation.B_ladenClick(Sender: TObject);
var
    Daten: TStringList;
begin
if MessageDlg('Möchten Sie die zuletzt gespeicherte Datei wirklich laden?',
    TMsgDlgType.mtConfirmation, [TMsgDlgBtn.mbYes, TMsgDlgBtn.mbNo], 0, TMsgDlgBtn.mbYes) = mrYes then
  begin
    Daten := TStringList.Create;
    Daten.LoadFromFile(TPath.GetDocumentsPath+TPath.DirectorySeparatorChar+'einstellungen.txt');

    //Kopf
    E_auftragnr.text := Daten[0];
    E_montagefirma.text := Daten[1];
    E_maschinentyp.text := Daten[2];
    E_artderarbeit.text := Daten[3];
    E_servicetechniker.text := Daten[4];
    E_land.itemindex := StrToint(Daten[5]);
    E_komnr.text := Daten[6];
    D_montagezeitvon.date := StrToDate(Daten[7]);
    D_montagezeitbis.date := StrToDate(Daten[8]);

    //Mitte
    D_datummo.date := StrToDate(Daten[9]);
    D_datumdi.date := StrToDate(Daten[10]);
    D_datummi.date := StrToDate(Daten[11]);
    D_datumdo.date := StrToDate(Daten[12]);
    D_datumfr.date := StrToDate(Daten[13]);
    D_datumsa.date := StrToDate(Daten[14]);
    D_datumso.date := StrToDate(Daten[15]);

    //Anreise
    E_reisebeginnmo.text := Daten[16];
    E_reisebeginndi.text := Daten[17];
    E_reisebeginnmi.text := Daten[18];
    E_reisebeginndo.text := Daten[19];
    E_reisebeginnfr.text := Daten[20];
    E_reisebeginnsa.text := Daten[21];
    E_reisebeginnso.text := Daten[22];

    E_reiseendemo.text := Daten[23];
    E_reiseendedi.text := Daten[24];
    E_reiseendemi.text := Daten[25];
    E_reiseendedo.text := Daten[26];
    E_reiseendefr.text := Daten[27];
    E_reiseendesa.text := Daten[28];
    E_reiseendeso.text := Daten[29];

    C_zeitverschiebungmo.itemindex := StrToInt(Daten[30]);
    C_zeitverschiebungdi.itemindex := StrToInt(Daten[31]);
    C_zeitverschiebungmi.itemindex := StrToInt(Daten[32]);
    C_zeitverschiebungdo.itemindex := StrToInt(Daten[33]);
    C_zeitverschiebungfr.itemindex := StrToInt(Daten[34]);
    C_zeitverschiebungsa.itemindex := StrToInt(Daten[35]);
    C_zeitverschiebungso.itemindex := StrToInt(Daten[36]);


    //Rückreise
    E_rückreisereisebeginnmo.text := Daten[37];
    E_rückreisereisebeginndi.text := Daten[38];
    E_rückreisereisebeginnmi.text := Daten[39];
    E_rückreisereisebeginndo.text := Daten[40];
    E_rückreisereisebeginnfr.text := Daten[41];
    E_rückreisereisebeginnsa.text := Daten[42];
    E_rückreisereisebeginnso.text := Daten[43];

    //Arbeit
    E_arbeitsbeginnmo.text := Daten[44];
    E_arbeitsbeginndi.text := Daten[45];
    E_arbeitsbeginnmi.text := Daten[46];
    E_arbeitsbeginndo.text := Daten[47];
    E_arbeitsbeginnfr.text := Daten[48];
    E_arbeitsbeginnsa.text := Daten[49];
    E_arbeitsbeginnso.text := Daten[50];


    //Variablen
    //Anreise
    GesamtStundenMo := StrToFloat(Daten[51]);
    GesamtStundenDi := StrToFloat(Daten[52]);
    GesamtStundenMi := StrToFloat(Daten[53]);
    GesamtStundenDo := StrToFloat(Daten[54]);
    GesamtStundenFr := StrToFloat(Daten[55]);
    GesamtStundenSa := StrToFloat(Daten[56]);
    GesamtStundenSo := StrToFloat(Daten[57]);

    //Rückreise
    RückreiseGesamtStundenMo := StrToFloat(Daten[58]);
    RückreiseGesamtStundenDi := StrToFloat(Daten[59]);
    RückreiseGesamtStundenMi := StrToFloat(Daten[60]);
    RückreiseGesamtStundenDo := StrToFloat(Daten[61]);
    RückreiseGesamtStundenFr := StrToFloat(Daten[62]);
    RückreiseGesamtStundenSa := StrToFloat(Daten[63]);
    RückreiseGesamtStundenso := StrToFloat(Daten[64]);

    //Arbeit
    GesamtArbeitsStundenMo := StrToFloat(Daten[65]);
    GesamtArbeitsStundenDi := StrToFloat(Daten[66]);
    GesamtArbeitsStundenMi := StrToFloat(Daten[67]);
    GesamtArbeitsStundenDo := StrToFloat(Daten[68]);
    GesamtArbeitsStundenFr := StrToFloat(Daten[69]);
    GesamtArbeitsStundenSa := StrToFloat(Daten[70]);
    GesamtArbeitsStundenSo := StrToFloat(Daten[71]);

    //Gesamt
    GesamtStundenErgebnisMo := StrToFloat(Daten[72]);
    GesamtStundenErgebnisDo := StrToFloat(Daten[73]);
    GesamtStundenErgebnisMi := StrToFloat(Daten[74]);
    GesamtStundenErgebnisDo := StrToFloat(Daten[75]);
    GesamtStundenErgebnisFr := StrToFloat(Daten[76]);
    GesamtStundenErgebnisSa := StrToFloat(Daten[77]);
    GesamtStundenErgebnisSo := StrToFloat(Daten[78]);

    //Anzeige
    //Anreise
    E_ReiseStundenMo.Text := FloatToStrF(GesamtStundenMo,ffNumber,5,2);
    E_ReiseStundenDi.Text := FloatToStrF(GesamtStundenDi,ffNumber,5,2);
    E_ReiseStundenMi.Text := FloatToStrF(GesamtStundenMi,ffNumber,5,2);
    E_ReiseStundenDo.Text := FloatToStrF(GesamtStundenDo,ffNumber,5,2);
    E_ReiseStundenFr.Text := FloatToStrF(GesamtStundenFr,ffNumber,5,2);
    E_ReiseStundenSa.Text := FloatToStrF(GesamtStundenSa,ffNumber,5,2);
    E_ReiseStundenSo.Text := FloatToStrF(GesamtStundenSo,ffNumber,5,2);

    //Arbeit
    E_ArbeitsStdMo.Text := FloatToStrF(GesamtArbeitsStundenMo,ffNumber,5,2);
    E_ArbeitsStdDi.Text := FloatToStrF(GesamtArbeitsStundenDi,ffNumber,5,2);
    E_ArbeitsStdMi.Text := FloatToStrF(GesamtArbeitsStundenMi,ffNumber,5,2);
    E_ArbeitsStdDo.Text := FloatToStrF(GesamtArbeitsStundenDo,ffNumber,5,2);
    E_ArbeitsStdFr.Text := FloatToStrF(GesamtArbeitsStundenFr,ffNumber,5,2);
    E_ArbeitsStdSa.Text := FloatToStrF(GesamtArbeitsStundenSa,ffNumber,5,2);
    E_ArbeitsStdSo.Text := FloatToStrF(GesamtArbeitsStundenSo,ffNumber,5,2);

    //Rückreise
    E_RückreiseReiseStundenMo.Text := FloatToStrF(RückreiseGesamtStundenMo,ffNumber,5,2);
    E_RückreiseReiseStundenDi.Text := FloatToStrF(RückreiseGesamtStundenDi,ffNumber,5,2);
    E_RückreiseReiseStundenMi.Text := FloatToStrF(RückreiseGesamtStundenMi,ffNumber,5,2);
    E_RückreiseReiseStundenDo.Text := FloatToStrF(RückreiseGesamtStundenDo,ffNumber,5,2);
    E_RückreiseReiseStundenFr.Text := FloatToStrF(RückreiseGesamtStundenFr,ffNumber,5,2);
    E_RückreiseReiseStundenSa.Text := FloatToStrF(RückreiseGesamtStundenSa,ffNumber,5,2);
    E_RückreiseReiseStundenSo.Text := FloatToStrF(RückreiseGesamtStundenSo,ffNumber,5,2);

    //Gesamt
    E_GesamtStdMo.text := FloatToStrF(GesamtStundenErgebnisMo,ffNumber,5,2);
    E_GesamtStdDi.text := FloatToStrF(GesamtStundenErgebnisDi,ffNumber,5,2);
    E_GesamtStdMi.text := FloatToStrF(GesamtStundenErgebnisMi,ffNumber,5,2);
    E_GesamtStdDo.text := FloatToStrF(GesamtStundenErgebnisDo,ffNumber,5,2);
    E_GesamtStdFr.text := FloatToStrF(GesamtStundenErgebnisFr,ffNumber,5,2);
    E_GesamtStdSa.text := FloatToStrF(GesamtStundenErgebnisSa,ffNumber,5,2);
    E_GesamtStdSo.text := FloatToStrF(GesamtStundenErgebnisSo,ffNumber,5,2);


  end;

end;
Ich weiß, schwer schwer umständlich das ganze, zumal ich auch Probleme habe ein Memo Feld mit mehreren Zeilen abzuspeichern. Dafür müsste ich ja jeder Zeile eine andere [Zahl] zuweisen.

Geht das alles nicht sowieso viel einfacher? Schwer viel arbeit, haha.

Aber das funktioniert ja alles. Ich habe wie gesagt nur Probleme, wenn ich eine Datei speichere und sie dann bei "FormCreate" sofort laden möchte.
André Bender
- Der PC rechnet mit allem, nur nicht mit seinem Besitzer. -

Geändert von ZeroX1337 ( 7. Aug 2014 um 10:42 Uhr)
  Mit Zitat antworten Zitat