Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   viele Texte speicheren una aufrufen?? (https://www.delphipraxis.net/198228-viele-texte-speicheren-una-aufrufen.html)

zeina 16. Okt 2018 09:32

viele Texte speicheren una aufrufen??
 
Guten Tag,
Ich habe eine Aufgabe ,dass ich jedes mal auf (memo)einen text schreiben muss,danach soll ich das mit der nummer von text aufrufen.
z.b:ich schreibe drei texte,dann will ich die text zwei mir zeigen.
Ich habe es mit Tstringlist gemacht,aber mein Programm speichert nur die letzte text.
kann jemanden mir dabei helfen oder raten??

hoika 16. Okt 2018 09:44

AW: viele Texte speicheren una aufrufen??
 
Hallo,
beim StringList.SaveToFile kann man doch einen beliebigen Dateinamen angeben.
Denn musst Du halt nur selber zusammenbauen.

TiGü 16. Okt 2018 09:44

AW: viele Texte speicheren una aufrufen??
 
Ist Deutsch deine Muttersprache?

Kannst du uns deinen bisherigen Quelltext zeigen?

zeina 16. Okt 2018 10:40

AW: viele Texte speicheren una aufrufen??
 
Zitat:

Zitat von TiGü (Beitrag 1415846)
Ist Deutsch deine Muttersprache?

Kannst du uns deinen bisherigen Quelltext zeigen?

Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
var i:integer;
begin
savecsv(i,ExtractFilePath(ParamStr(0)) + 'Koordinaten.csv');
end;
procedure TForm2.Button2Click(Sender: TObject);
begin
  loadcsv(2,ExtractFilePath(ParamStr(0)) + 'Koordinaten.csv');
end;
procedure TForm2.savecsv(ID: integer; Filename: string);
var KPolygon:TStringlist;
    Slist:Tstringlist;
    Sl:Tstringlist;
    csvtextlin:string;
    i,j:integer;
begin
try
Slist:=Tstringlist.Create;    Sl:=Tstringlist.Create;
 for I := 0 to 3 do

  KPolygon:=Tstringlist.Create;
   for j := 0 to RichEdit1.Lines.count - 1 do
    begin
      csvtextlin:= RichEdit1.Lines[j];
      KPolygon.Add(csvtextlin);
    end;
        Slist.AddStrings(KPolygon);
     Slist.SaveToFile(Filename);
     Showmessage(Slist.Text);
   finally
      KPolygon.Free;
   Slist.Free;
end;
end;
procedure TForm2.loadcsv(ID: integer; Filename: string);
var KPolygon:TStringlist;
    Slist:Tstringlist;
    csvtextlin:string;
    i,j:integer;
begin
try
Slist:=Tstringlist.Create;
Slist.LoadFromFile(Filename);
id:=Slist.count;
 for I := 0 to id-1 do
   KPolygon:=Tstringlist.Create;
   if (KPolygon[i])=inttostr(id) then
   for j := 0 to KPolygon.count - 1 do
    begin
      csvtextlin:= KPolygon.Strings[j];
    end;
      Showmessage(KPolygon.Strings[j]);
finally
     KPolygon.Free;
   Slist.Free;
end;
end;

DeddyH 16. Okt 2018 11:00

AW: viele Texte speicheren una aufrufen??
 
Bitte bearbeite Deinen Beitrag und setze den Code in Delphi-Tags (entweder über die "Helm"-Schaltfläche oder händisch mit [ delphi ]Code[ /delphi ] ohne die Leerzeichen).

DeddyH 16. Okt 2018 11:13

AW: viele Texte speicheren una aufrufen??
 
Du müsstest mal begin-end-Blöcke setzen. Beispiel:
Zitat:

Delphi-Quellcode:
    for I := 0 to 3 do

      KPolygon := Tstringlist.Create;

Du erzeigst hier 4 Stringlisten, wobei die entsprechende Variable mit jeder neuen Instanz überschrieben wird, d.h. die vorherigen 3 kannst Du gar nicht freigeben -> Speicherleck. Außerdem ist die korrekte Syntax eines Speicherschutzblocks
Delphi-Quellcode:
Obj := TKlasse.Create;
try
  Obj.TuWas;
finally
  Obj.Free;
end;
Also das try hinter die Instanzierung.

[edit] Wo wird denn SL wieder freigegeben? Und der ID-Parameter wird zumindest beim Speichern nicht benutzt, wozu ist der gut? [/edit]

zeina 17. Okt 2018 07:01

AW: viele Texte speicheren und aufrufen??
 
könnte ich ein Array of Tstrings oder Stringlist um jeder String zu Speichern!!könnte jemanden mir dabei Hilfen,weil ich ِziemlich anfängerin bin:cry::cry::cry:

DeddyH 17. Okt 2018 07:55

AW: viele Texte speicheren una aufrufen??
 
Erklär doch erst einmal, was genau Du eigentlich machen willst, zumindest mir ist das noch nicht ganz klar.

zeina 17. Okt 2018 08:17

AW: viele Texte speicheren una aufrufen??
 
ich habe ein OpenStreetmap und soll die Koordinaten für solchen Ort in Memo zeigen oder in Array Speicheren.
Ich soll jeden Ort markieren und mit index die koordinaten speichern ,danach kann ich sein Koordinaten durch sein index oderDie nummer von Ort aufrufen

DeddyH 17. Okt 2018 08:45

AW: viele Texte speicheren una aufrufen??
 
Und was steht wo? In Deinem Code kann ich nur ein RichEdit und jede Menge Stringlisten erkennen. Und wir die ID da rein spielt hast Du auch noch nicht beantwortet.

zeina 17. Okt 2018 10:24

AW: viele Texte speicheren una aufrufen??
 
Delphi-Quellcode:
function TForm2.Add(const line: Tstrings): integer;
var
  i : Integer;
  j : Integer;
   oSLArray : array of TStringList;
  oSL : TStringList;
begin
  if not(Assigned(line)) then exit;
  SetLength(oSLArray, line.Count);
  for i := 0 to line.Count - 1 do begin
    oSLArray[i] := TStringList.Create;
    oSLArray[i].Delimiter := ' ';
    oSLArray[i].DelimitedText := line[i];
    for j := 0 to oSLArray[i].Count-1 do begin
      Showmessage( oSLArray[i].Strings[j]);

    end; {for j}

  end; {for i}
end;
Function TForm2.Polygon:integer;
var
    Slat,Slon: string;
     Poly   : TMapPolygon;
     PItem  : TPolygonItem;
     Pi     : TPathItem;
     Count,i : Integer;
     IdPolygon: Integer;

begin
  Result:=-1;
  WebOSMaps1.Markers.Clear;
  PItem := WebOSMaps1.Polygons.Add;
  Poly := PItem.Polygon;
  Poly.PolygonType    := ptpath;
  Poly.BorderWidth    := 4;
  Poly.BorderColor    := clWebDarkBlue;
  Poly.BorderOpacity  := 100;
  Poly.LabelFont.Style := [fsBold];
  Poly.LabelOffset.Y  := 200;
  Poly.LabelFont.Color := clWebDarkBlue;
  Poly.LabelText      := ('Das Polygon hat :'+IntToStr((RichEdit1.Lines.count)div 2)+' Eckpunkte');
  if RichEdit1.Lines[0] <> '' then begin
    WebOSMaps1.MapOptions.DefaultLatitude:=strtofloat(RichEdit1.Lines[0]);
    WebOSMaps1.MapOptions.DefaultLongitude:=strtofloat(RichEdit1.Lines[1]);
    WebOSMaps1.MapPanTo(WebOSMaps1.MapOptions.DefaultLatitude,WebOSMaps1.MapOptions.DefaultLongitude);
    WebOSMaps1.MapOptions.ZoomMap:=18;
    i := 0;
    repeat
      Slat := left(RichEdit1.Lines[2 * i],10);
      Slon := left(RichEdit1.Lines[2 * i + 1],11);
      Pi   := Poly.Path.Add;
      Pi.Latitude :=strtofloat(SLat);
      Pi.Longitude := strtofloat(SLon);
      inc(i);
    until (RichEdit1.Lines[2 * i + 1] = '');
    WebOSMaps1.CreateMapPolygon(Poly);
  end;
  Result:= Poly.ItemIndex;
  Showmessage(inttostr(Poly.ItemIndex));
end;
procedure TForm2.Button1Click(Sender: TObject);
begin
polygon;
Add(RichEdit1.Lines);
end;
wie kann ich für jeden Ort (Richtedit1.lines)Speicheren und nochmal aufrufen!!!

DeddyH 17. Okt 2018 10:29

AW: viele Texte speicheren una aufrufen??
 
Meine Güte, sieht das kompliziert aus. Gehen wir es mal anders an: wie sieht der Inhalt des RichEdit aus, und was soll am Ende herauskommen?

zeina 17. Okt 2018 10:48

AW: viele Texte speicheren una aufrufen??
 
mit jeder klick an Map wird es (Latitude und Longitude)auf Richedit schrieben lassen.
z.b:ich habe vier mal geklickt,dann es auf Richtedit gezeigt wird.
mein ziel ist ,dass ich jedes mal das machen und könnte ich die text nochmal aufrufen.Ich meinte,dass ich zwei Ort markiert,dann speichere ich jeder allleine,dann rufe ich die erste auf

DeddyH 17. Okt 2018 11:17

AW: viele Texte speicheren una aufrufen??
 
Den Inhalt des RichEdit und die gewollten resultierenden Dateien bitte. So in der Art
Code:
Zeile Eins
Zeile Zwei
Zeile Drei
Code:
Eins.txt
Zwei.txt
Drei.txt
Inhalt Eins.txt:
Code:
Dies ist Zeile Eins

KodeZwerg 17. Okt 2018 11:19

AW: viele Texte speicheren una aufrufen??
 
lege doch deine lati und longi in ein array of record wo das record beides enthält, dann brauchst du kein richedit oder der gleichen.

TiGü 17. Okt 2018 11:39

AW: viele Texte speicheren una aufrufen??
 
Der originale Wortlaut dieser Schul-/Praktikumsaufgabe wäre auch sinnvoll.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:00 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