Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Zeichen in String setzen (https://www.delphipraxis.net/45050-zeichen-string-setzen.html)

Crishnu 28. Apr 2005 17:14


Zeichen in String setzen
 
Hi

Ich möchte nach jedem 2. Zeichen in diesem String:

197b5fe39cae9c2f3643ecc180a43349ee1ed610

ein % setzten, hat jemand ne ahnung wie das geht??
Ganz am ANfang soll auch ein % sein, am schluss jedoch nicht.

MFG

sniper_w 28. Apr 2005 17:21

Re: Zeichen in String setzen
 
Delphi-Quellcode:
function insert__sp(const val:string):string;
 var n,i :integer;
begin
 n:=1; // zähler für val string, geht 'langsamer' als i
 setlength(result, length(val)*2);// resultierende string ist 2*so gross wie val
 for i:=1 to length(result) do // für jeder char in result string
 if i mod 2=0 then // wenn i teilbar durch 2 ist
 begin        
 result[i] := val[n]; // dann nichts, einfach merken
 inc(n);
 end else
 begin
 result[i] := '%'; // wenn nicht dann ist es an der stelle 1,3,5,7....d.h. '%'
 end;
end;
nicht getestet.


EDIT
Oder willst du das ?:
Delphi-Quellcode:
function insert__sp_2(const val:string):string; // das wäre für dich das Richtige
 var i,n:integer;
begin
 n := 1;
 SetLength(Result, length(val)+length(val) div 2 - 1 );
 for i:=1 to Length(Result) do
 begin
  if (i-1) mod 3=0 then
  begin
   Result[i] := '%';
  end
  else
  begin
   Result[i] := val[n];
   Inc(n);
  end;
 end;
end;

Crishnu 28. Apr 2005 17:27

Re: Zeichen in String setzen
 
THX!!

Könntest du vielleicht noch ein paar comments
dazu geben, vllt auch erklären, wie das zu benutzen ist,
hab grad erst mit delphi angefangen.

Edit:

Also aus dem:
197b5fe39cae9c2f3643ecc180a43349ee1ed610

Soll das werden:
%19%7b%5f%e3%9c%ae%9c%2f%36%43%ec%c1%80%a4%33%49%e e%1e%d6%10

Crishnu

malo 28. Apr 2005 17:43

Re: Zeichen in String setzen
 
Zitat:

Zitat von Crishnu
THX!!

Könntest du vielleicht noch ein paar comments
dazu geben, vllt auch erklären, wie das zu benutzen ist,
hab grad erst mit delphi angefangen.

Edit:

Also aus dem:
197b5fe39cae9c2f3643ecc180a43349ee1ed610

Soll das werden:
%19%7b%5f%e3%9c%ae%9c%2f%36%43%ec%c1%80%a4%33%49%e e%1e%d6%10

Crishnu

Das macht der Code doch. Den Aufruf machst du etwa so:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(inser_sp(197b5fe39cae9c2f3643ecc180a43349ee1ed610));
end;
Das würde eine Textbox ausgeben mit deinem neuen String. Hab dafür als Vorlage den ersten Code von sniper_w genommen ;)

PS: Ungetestet ;)

Crishnu 28. Apr 2005 17:49

Re: Zeichen in String setzen
 
Ja, so geht alles, Dankeschön schonmal!!

Die 2. funktion macht so, wies sein soll.
Nur noch ein kleiner Fehler, am Ende vom String steht
auch noch ein % das soll da nichts ein.

Crishnu

sniper_w 28. Apr 2005 17:52

Re: Zeichen in String setzen
 
Schon korrigiert !! Wieder Copy-Paste machen ! :)

Dax 28. Apr 2005 17:53

Re: Zeichen in String setzen
 
Ganz einfach:
Delphi-Quellcode:
SetLength(str, Length(Str)-1);
// oder:
Str[Length(str)] := '';

Crishnu 28. Apr 2005 21:05

Re: Zeichen in String setzen
 
Noch ein Problem @ sniper_w
die letzte Ziffer oder Buchstabe vom string wird nicht übernommen, der fehlt einfach.

Edit: Is schon gefixt.

Nochmal thx an alle
Crishnu


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:57 Uhr.

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