![]() |
String zerlegen
hoi.
ich hab schon gesucht, aber nichts gefunden. Mein Problem: Ich habe eine Stringlist z.b.
Code:
usw...
Hallo:Danke
Wie_geht_es_dir:gut mir_auch:schön Ich habe ein TValueListEditor und möchte die in Links und Rechts einordnen. Wie kann ich das machen? |
Re: String zerlegen
Hast Du die Möglickeit die : durch = zu ersetzen.
Dann sollte es mit dem ValueListEditor auch kein Problem geben, der erwartet String so key=value. Grüße Klaus |
Re: String zerlegen
Zitat:
Pos, posex, copy, ... und evtl. hat die list sogar noch nen Delimiter (Trennzeichen) dann fluppt alles "von selbst" ^^ |
Re: String zerlegen
klaus: nein, die möglichkeit habe ich nicht, da es ein .htpasswd-editor werden soll ;)
teronG: geht es vllt etwas genauer? dennis |
Re: String zerlegen
Zitat:
|
Re: String zerlegen
Zitat:
![]() ![]() Gruß Der Unwissende [Edit] Kurz die Suche verwendet und natürlich gab es keinen roten Kasten, nicht einen einzigen! [/Edit] |
Re: String zerlegen
|
Re: String zerlegen
Hmmm. Matze, da haste recht.
Ich müsste nur wissen, wie man ein zeichen ersetzt *mal such* dennis |
Re: String zerlegen
Zitat:
![]() |
Re: String zerlegen
also bei 'ner TStringList kannst du den Seperator festlegen (standardmäßig ist der ja "=" ... aber ein ":" wäre genauso möglich)
und dannach kannst du dann ganz einfach die Datei mit LoadFormFile auslesen. TValueList ... nutzt die intern auch TStringList/TStrings? wenn, dann könnte man ja versuchen dieser auch gleich ":" als Seperator beizubringen. |
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 ^^ |
Re: String zerlegen
wenn ich mit
valueeditor.Strings.Delimiter := ':'; dem edit das trennzeichen beibringen will, passiert nicht... dennis |
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(... |
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:
aber es will nicht
valueedit.Strings.Delimiter := ':';
valueedit.Strings := memo1.Lines; |
Re: String zerlegen
Zitat:
Aber ich stelle mir das ungefähr so vor:
Delphi-Quellcode:
Grüße
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; Klaus |
Re: String zerlegen
Hallo,
bei mir würde das so funktionieren:
Delphi-Quellcode:
Freundliche Grüße
var
fn: TFileName; begin // ... with ValueListEditor.Strings do begin NameValueSeparator := ':'; LoadFromFile(fn); end; end; |
Re: String zerlegen
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
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 |
Re: String zerlegen
Mal abgesehen vom konkreten Problem, hier n Tutorial zum Thema:
![]() mfg Christian |
Re: String zerlegen
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Dennis |
Re: String zerlegen
Zitat:
Entweder:
Delphi-Quellcode:
(Wenn "TStrings" "Delimiter" kennt)
memo1.Lines.Delimiter := ':';
valueedit.Strings := memo1.Lines; oder:
Delphi-Quellcode:
valueedit.Strings.Delimiter := ':';
valueedit.Strings.Text := memo1.Lines.Text; |
Re: String zerlegen
xZise: Keine der beidern Varianten funktioniert...
|
Re: String zerlegen
getestet und funktioniert:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var sl: TStringList; begin sl := TStringList.create; sl.loadfromFile('e:\test.dat'); sl.Text:=StringReplace(sl.text,':','=',[rfReplaceAll]); ValueListEditor1.strings.assign(sl); sl.free; end; wobei test.dat bei mir so ausssieht: user:password user1:password1 user2:password3 Grüße Klaus |
Re: String zerlegen
Joa!
Es funktioniert! Danköö. :thumb: Vllt seht ihr das Proggi bald in der OS-Sektion *mal überleg* bye Dennis |
Re: String zerlegen
Hallo Dennis,
Zitat:
Delphi-Quellcode:
Die Ausgabe ist korrekt. Aufgrund deines ScreenShots habe ich das Problem untersucht und einen ärgerlichen Fehler in der VCL entdecken müssen. In der Methode GetCell() von TValueListEditor wird zur Ermittlung des Values nicht die property NameValueSeparator verwendet, sondern das Literal '='. Das habe ich nicht gewusst. Ich kann auch nicht auf Anhieb erkennen, warum für den internen Zugriff nicht die vorhandenen Methoden von ValueListEditor.Strings verwendet werden, die diesen Fehler ja nicht aufweisen.
begin
with VLE.Strings do begin NameValueSeparator := ':'; Text := 'user1:password1' + sLineBreak + 'user2:password2'; ShowMessage(Values['user2']); end; end; Sorry nochmal. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:48 Uhr. |
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