AGB  ·  Datenschutz  ·  Impressum  







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

String mit Leerzeichen verursacht Chaos???

Ein Thema von AlexII · begonnen am 22. Mai 2009 · letzter Beitrag vom 22. Mai 2009
Antwort Antwort
Seite 3 von 3     123   
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#21

Re: String mit Leerzeichen verursacht Chaos???

  Alt 22. Mai 2009, 20:38
Ich hab das Problem wo anders gefunden, die Strings werden doch richtig und mit Leerzeichen gespeichert, geladen werden sie falsch und ich dachte sie wurden falsch abgespeichert, verzeiht. Hier werden die Strings mit den Leerzeichen durcheinander gebracht:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var i: Integer;
    List : TStringList;
    List2: TStringList;
begin
  List:=TStringList.Create;
  List2:=TStringList.Create;
  List2.Delimiter:='=';
  try
    List.LoadFromFile(ExtractFilePath(ParamStr(0)) + '\Datei.txt');
    for i:=0 to List.Count-1 do
    begin
    List2.DelimitedText:=List[i];

    ListBox1.Items.Insert(i, List2[1]);
    ListBox2.Items.Insert(i, List2[2]);
    ListBox3.Items.Insert(i, List2[3]);
    ListBox4.Items.Insert(i, List2[4]);
    end;
  finally
    List.Free;
    List2.Free;
  end;
end;
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#22

Re: String mit Leerzeichen verursacht Chaos???

  Alt 22. Mai 2009, 20:41
In diesem Fall könntest du die Leerzeichen durch ein anderes Zeichen (welches im text natürlich nicht vorkommen darf) ersetzen. Später durch die Einträge durchgehen und zurückersetzen
Markus Kinzler
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#23

Re: String mit Leerzeichen verursacht Chaos???

  Alt 22. Mai 2009, 20:42
Das hatte ich auch vor aber ich gucke mal, vllt beseitige ich das Problem anders.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#24

Re: String mit Leerzeichen verursacht Chaos???

  Alt 22. Mai 2009, 20:49
Zitat von AlexII:
Das hatte ich auch vor aber ich gucke mal, vllt beseitige ich das Problem anders.
Sollte eigentlich kein großes Problem darstellen
Markus Kinzler
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#25

Re: String mit Leerzeichen verursacht Chaos???

  Alt 22. Mai 2009, 20:49
Hallo,

ich hatte mal für einen anderen Thread das explode
so umgebaut das es eine StringList zurückgibt.

Delphi-Quellcode:
// Explode trennt S in die durch Separator getrennten Elemente auf. Wenn Limit
// > 0 ist, so werden max. Limit Elemente getrennt, wobei im letzen Element
// die Restzeichenkette steht.

function Explode(const Separator, S: string; Limit: Integer = 0): TStringList;
var
  SepLen: Integer;
  F, P: PChar;
  Index: Integer;
begin
  result := TStringList.Create;
  if (S = '') or (Limit < 0) then Exit;
  if Separator = 'then
  begin
    Result.add(S);
    Exit;
  end;
  SepLen := Length(Separator);

  Index := 0;
  P := PChar(S);
  while P^ <> #0 do
  begin
    F := P;
    P := AnsiStrPos(P, PChar(Separator));
    if (P = nil) or ((Limit > 0) and (Index = Limit - 1)) then
      P := StrEnd(F);
    result.Add(copy(AnsiString(F),0,P-F));
    inc(index,1);
    if P^ <> #0 then Inc(P, SepLen);
  end;

end;

Damit würde Dein Code dann so ausschauen:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var i: Integer;
    List : TStringList;
    List2: TStringList;
begin
  List:=TStringList.Create;
  try
    List.LoadFromFile(ExtractFilePath(ParamStr(0)) + '\Datei.txt');
    for i:=0 to List.Count-1 do
      begin
        List2:=explode('=',List[i]);

        ListBox1.Items.Insert(i, List2[1]);
        ListBox2.Items.Insert(i, List2[2]);
        ListBox3.Items.Insert(i, List2[3]);
        ListBox4.Items.Insert(i, List2[4]);
        List2.free;
      end;
  finally
    List.Free;
  
  end;
end;
Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#26

Re: String mit Leerzeichen verursacht Chaos???

  Alt 22. Mai 2009, 20:53
Wow es klappt, aber wieso wird die List2 in der Schleife freigegeben, ist das richtig so?
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#27

Re: String mit Leerzeichen verursacht Chaos???

  Alt 22. Mai 2009, 20:55
Zitat von AlexII:
Wow es klappt, aber wieso wird die List2 in der Schleife freigegeben, ist das richtig so? :gruebel:
ja, denn explode erstellt eine StringList Instanz und diese wird List2 übergeben.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#28

Re: String mit Leerzeichen verursacht Chaos???

  Alt 22. Mai 2009, 20:57
Ah... jah... ok, danke dir
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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 05:20 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