Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi String zerlegen (https://www.delphipraxis.net/90223-string-zerlegen.html)

TeronG 13. Apr 2007 14:39

Re: String zerlegen
 
Ich kenne TValueListEditor nicht auswendig aber evtl. kann man da den/einen Delimeter einstellen dann würde er alles von selbst Trennen.

Notfalls musst du hald die Zeilen in 2 Strings zerlegen.
Mit Pos die Position des ':' suchen und dann mit Copy den teil davor bzw. danach in ne neue Variabel (bzw direkt ins Zielfeld) copieren.

Es geht natürlich auch sowas wie:
blub1 := Copy(orgString,1,Pos(':',orgString)-1);

Achtung nur ausm Kopf geschrieben .. hab grad ken Delphi zu testen/korigieren ^^

DenSchub 13. Apr 2007 14:44

Re: String zerlegen
 
wenn ich mit
valueeditor.Strings.Delimiter := ':';
dem edit das trennzeichen beibringen will, passiert nicht...

dennis

himitsu 13. Apr 2007 14:47

Re: String zerlegen
 
Also wenn es überhaupt funktioniert, dann mußt du das vorm einfügen er Daten in die Liste machen.

nicht das du es im Nachhinein versuchst.

Delphi-Quellcode:
valueeditor.Strings.Delimiter := ':';
valueeditor.Strings.LoadFormile(...

DenSchub 13. Apr 2007 14:50

Re: String zerlegen
 
jaja, das ist mir bewusst, aber ich leg das schon am anfang fest...

ich hab das erstmal mit ner memo gemacht:
Delphi-Quellcode:
  valueedit.Strings.Delimiter := ':';
  valueedit.Strings := memo1.Lines;
aber es will nicht

Klaus01 13. Apr 2007 14:52

Re: String zerlegen
 
Zitat:

Zitat von DenSchub
wenn ich mit
valueeditor.Strings.Delimiter := ':';
dem edit das trennzeichen beibringen will, passiert nicht...

dennis

Na, so weit ich bisher die Delphi Hilfe verstanden habe braucht es zwingend das = Zeichen.

Aber ich stelle mir das ungefähr so vor:
Delphi-Quellcode:
sl := TStringList.create

//laden
sl.loadfromFile(htaccess);
for i:= 0 to sl.count -1 do
  StringReplace(sl[i],':','=',[rfReplaceAll]);

ValueListEditor1.strings.assign(sl);

//speichern

sl.assign(ValueListEditor1.strings);
for i:=0 to sl.count -1 do
  StringReplace(sl[i],'=',':',[rfReplaceAll]);
sl.savetoFile(htaccess);

sl.free;
Grüße
Klaus

marabu 13. Apr 2007 16:04

Re: String zerlegen
 
Hallo,

bei mir würde das so funktionieren:

Delphi-Quellcode:
var
  fn: TFileName;

begin
  // ...
  with ValueListEditor.Strings do
  begin
    NameValueSeparator := ':';
    LoadFromFile(fn);
  end;
end;
Freundliche Grüße

Klaus01 13. Apr 2007 16:21

Re: String zerlegen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von marabu
Hallo,

bei mir würde das so funktionieren:

Delphi-Quellcode:
var
  fn: TFileName;

begin
  // ...
  with ValueListEditor.Strings do
  begin
    NameValueSeparator := ':';
    LoadFromFile(fn);
  end;
end;
Freundliche Grüße

Hallo Achim,

zu meiner Ehrenrettung, die Eigenschaft NameValueSeparator gibt es in Delphi 6 noch nicht.
Da Dennis aber D7 hat - sollte es so bei ihm gehen - gut für ihn.

Grüße
Klaus

r2c2 13. Apr 2007 16:44

Re: String zerlegen
 
Mal abgesehen vom konkreten Problem, hier n Tutorial zum Thema: http://r2c2.weingut-rehn.de/content3...mit_Delphi.htm

mfg

Christian

DenSchub 14. Apr 2007 10:17

Re: String zerlegen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von marabu
Hallo,

bei mir würde das so funktionieren:

Delphi-Quellcode:
var
  fn: TFileName;

begin
  // ...
  with ValueListEditor.Strings do
  begin
    NameValueSeparator := ':';
    LoadFromFile(fn);
  end;
end;
Freundliche Grüße

Schau dir mal den Schreenshot an :wall:

Dennis

xZise 14. Apr 2007 10:24

Re: String zerlegen
 
Zitat:

Zitat von DenSchub
jaja, das ist mir bewusst, aber ich leg das schon am anfang fest...

ich hab das erstmal mit ner memo gemacht:
Delphi-Quellcode:
  valueedit.Strings.Delimiter := ':';
  valueedit.Strings := memo1.Lines;
aber es will nicht

imho kann das doch nicht funktionieren, wenn du dannach "Strings" wieder überschreibst ;)
Entweder:
Delphi-Quellcode:
memo1.Lines.Delimiter := ':';
valueedit.Strings := memo1.Lines;
(Wenn "TStrings" "Delimiter" kennt)
oder:
Delphi-Quellcode:
valueedit.Strings.Delimiter := ':';
valueedit.Strings.Text := memo1.Lines.Text;


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:55 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz