| Autor |
Beitrag |
tim1990
Hält's aus hier
Beiträge: 5
|
Verfasst: Di 17.08.10 09:28
Hallo,
gibt es eine Delphi-funktion, die aus einem String-Array einen (Kommagetrennten) String generiert:
Bsp:
Delphi-Quelltext 1: 2: 3:
| myString[0]:= 'erster'; myString[1]:= 'zweiter'; myString[2]:= 'dritter'; |
-->'erster, zweiter, dritter'
danke
Moderiert von Narses: Delphi-Tags hinzugefügt
|
|
Stundenplan
      
Beiträge: 128
Erhaltene Danke: 32
Win 7
Delphi 7 Pers., C# (VS 2010 Express)
|
Verfasst: Di 17.08.10 09:40
Verwende doch anstatt dem Array TStringList, das hat nämlich auch die Eigenschaft CommaText.
Ansonsten kannste dir ja schnell mal eine selber schreiben.
|
|
Boldar
      
Beiträge: 1555
Erhaltene Danke: 70
Win7 Enterprise 64bit, Win XP SP2
Turbo Delphi
|
Verfasst: Di 17.08.10 09:40
Etwas mehr informationen wären nicht schlecht.
Wofür brauchst du das denn?
Evtl. könnte man eine Stringlist nehmen.
Edith sagt: FUUU, zu langsam...
|
|
tim1990 
Hält's aus hier
Beiträge: 5
|
Verfasst: Di 17.08.10 10:20
hallo,
ich habe ein stringarray und ich will die einzelnen Elemente hintereinander konkaniert haben (durch ein Kommo/Semikolon);
Gibt es eine DelphiFunktion, bspw arrayToString , oder so?
|
|
Andreas L.
      
Beiträge: 1703
Erhaltene Danke: 25
Windows Vista / Windows 10
Delphi 2009 Pro (JVCL, DragDrop, rmKlever, ICS, EmbeddedWB, DEC, Indy)
|
Verfasst: Di 17.08.10 10:31
|
|
Tropby
      
Beiträge: 71
Erhaltene Danke: 4
Vista, Win XP, Win 89
Turbo Delphi Ex.
|
Verfasst: Di 17.08.10 12:54
Hab die Funktion gerade mal getestet und eine kleine korrektur gemacht:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| function ArrayToStr(const arr: array of string):String; var i: Integer; begin Result := ''; for i := Low(arr) to High(arr) do begin if i <> Low(arr) then Result := Result + ', '; Result := Result + arr[i]; end end; |
Es darf ja beim ersten Element kein ", " davor sein.
_________________ Tropby
|
|
Andreas L.
      
Beiträge: 1703
Erhaltene Danke: 25
Windows Vista / Windows 10
Delphi 2009 Pro (JVCL, DragDrop, rmKlever, ICS, EmbeddedWB, DEC, Indy)
|
Verfasst: Di 17.08.10 13:02
Richtig, nach dem letzten Element sollte aber auch kein Komma sein:
Delphi-Quelltext 1:
| if (i <> Low(arr)) and (i <> High(arr)) then |
EDIT: Oder man platziert den Code Result := Result + arr[i]; über die Abfrage, dann reicht die Überprüfung auf High(arr):
Delphi-Quelltext 1: 2: 3: 4:
| Result := Result + arr[i]; if i <> High(arr) then Result := Result + ', '; end |
|
|
Marc.
      
Beiträge: 1876
Erhaltene Danke: 129
Win 8.1, Xubuntu 15.10
|
Verfasst: Di 17.08.10 15:29
|
|
Durek
Hält's aus hier
Beiträge: 2
|
Verfasst: So 22.08.10 04:19
Hey,
in PHP gibt es die Funktionen implode(',',arr) und explode()
Diese hier mal für Delphi
einfach mal:
arr[0]='Test';
arr[1]='Bla';
arr[2]='Blubb';
String := implode(',',arr)
String hat dann den Wert "Test,Bla,Blubb" der erste Parameter also gibt die Zeichenkette für den "Kleber" an^^
www.swissdelphicente...showcode.php?id=1326
Ansonsten wäre JSON das was du meinst, ich arbeite erst einige Tage mit Delphi und versuche selbst noch die JSON Funktionen von der "superobject" Klasse irgendwie richtig anzuwenden, daher kann ich Dir da erstmal nicht behilflich sein.
|
|