[Erledigt] Programmiertechnikfrage Stringbehandlung

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
MacWomble
Lazarusforum e. V.
Beiträge: 999
Registriert: Do 17. Apr 2008, 01:59
OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
CPU-Target: Intel i7-10750 64Bit
Wohnort: Freiburg

[Erledigt] Programmiertechnikfrage Stringbehandlung

Beitrag von MacWomble »

Ich möchte einen Filter für Telefonnummern u.ä bauen. Hierfür soll ein String ergänzt werden in der Form:

Eingabe: 0123456789
Ausgabe: %0%1%2%3%4%5%6%7%8%9%

Ich kann mir das natürlich in einer Schleife zusammenbasteln, wollte aber zuvor wissen, ob es einen eleganteren Weg hierfür gibt.
Zuletzt geändert von MacWomble am So 29. Sep 2019, 22:40, insgesamt 1-mal geändert.
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.

Warf
Beiträge: 1908
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Programmiertechnikfrage Stringbehandlung

Beitrag von Warf »

Naja, zum einen ist das sehr spezifisch was du da machen willst, zum anderen ist das in der simpelsten Form ein 2 Zeiler

Code: Alles auswählen

Result := '%'
For c in TelNummer do Result += c + '%';

Und in der effizienten form ein fünfzeiler (begin und end nicht mitgezählt):

Code: Alles auswählen

SetLength(Result, TelNummer.Length*2 + 1);
Result[1] := '%';
for i:=1 to TelNummer.Length do
begin
  Result[i*2] := TelNummer[i];
  Result[i*2+1] := '%';
end;


Was soll man da überhaupt eleganter machen können? Ein 2-Zeiler ist so ziemlich das eleganteste was ich mir da vorstellen kann

MacWomble
Lazarusforum e. V.
Beiträge: 999
Registriert: Do 17. Apr 2008, 01:59
OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
CPU-Target: Intel i7-10750 64Bit
Wohnort: Freiburg

Re: Programmiertechnikfrage Stringbehandlung

Beitrag von MacWomble »

:oops: Bei mir hätte das bestimmt wilder ausgesehen ...

Dankeschön ! :D
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.

Antworten