Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - StringArray to String
tim1990 - Di 17.08.10 09:28
Titel: StringArray to String
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 - Di 17.08.10 09:40
Verwende doch anstatt dem Array TStringList, das hat nämlich auch die Eigenschaft CommaText. :idea:
Ansonsten kannste dir ja schnell mal eine selber schreiben.
Boldar - 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 - 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. - Di 17.08.10 10:31
tim1990 hat folgendes geschrieben : |
Gibt es eine DelphiFunktion, bspw arrayToString , oder so? |
Nein, aber das kann man sich selber schreiben:
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 <> High(arr) then Result := Result + ', '; Result := Result + arr[i]; end end; |
Ungetestet...
Tropby - 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.
Andreas L. - 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. - Di 17.08.10 15:29
Andreas L. hat folgendes geschrieben : |
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 | |
Oder man platziert den Code unter die Schleife und spart sich dann komplett das if. Ob das wesentlich eleganter ist, ist nun dem geneigten Programmierer überlassen. :P
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| function ArrayToStr(const AList: Array of String; const ADelimiter: String): String; var i: Integer; begin Result := '';
for i := Low(AList) to High(AList) - 1 do Result := Result + AList[i] + ADelimiter;
Result := Result + AList[High(AList)]; end; |
Durek - 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^^
http://www.swissdelphicenter.ch/torry/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.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!