Thema: Delphi String Konvertierung

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.194 Beiträge
 
Delphi 12 Athens
 
#10

AW: String Konvertierung

  Alt 25. Feb 2018, 23:29
Zitat:
Aber es würde mich schon interessieren wie du das umsetzen würdest..
So schwer zwei/drei genannte Befehle in einen Code zu schreiben und die Parameter zu füllen?
Delphi-Quellcode:
var
  S: string;
  B: TBytes;
  U: UnicodeString; //WideString
  i: Integer;
begin
  S := '0056006F007200730063006800610075';
  SetLength(B, Length(S) div 2);
  HexToBin(PChar(S), B[0], Length(B));
  S := TEncoding.BigEndianUnicode.GetString(B);
  ShowMessage(S);

  S := '0056006F007200730063006800610075';
  SetLength(U, Length(S) div 4);
  HexToBin(PChar(S), U[Low(U)], Length(U) * 2);
  for i := High(U) downto Low(U) do
    Word(U[i]) := Swap(Word(U[i]));
  ShowMessage(U);

Zitat:
Delphi-Quellcode:
  Edit2.Text := '';
  For i := 0 to (length(Edit1.Text) div 4)-1 do begin
    Edit2.Text := Edit2.Text + WideChar(StrToInt('$' + Copy(Edit1.Text,1 + (i*4),4)));
PS: Vom Speichermanagement her sind die vielen Stringoperationen ein Graus, vor allem im alten Delphi-Memory-Manager.
Massenhaft Speicher reservieren und wieder freigeben ... 4 Mal pro Char, zuzüglich nochmal der Behandlungen im EDIT.
Dank FastMM mag sich da seit Delphi 6 so Einiges gebessert haben, aber schön ist es dennoch nicht.

Gut, bei diesem einen String, innerhalb eines Button-OnClick, mag es niemand wirklich bemerken.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (26. Feb 2018 um 01:35 Uhr)
  Mit Zitat antworten Zitat