Thema: Delphi PChar Zeichen Index

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: PChar Zeichen Index

  Alt 30. Mai 2012, 00:09
x := (NativeInt(P) - NativeInt(PChar(s))) div {SizeOf(Char)} SizeOf(s[1]) + 1;

Delphi-Quellcode:
var
  s: string;
  p, p1: PChar;
  i: NativeInt absolute p;
  i1: NativeInt absolute p1;
begin
  s := 'hallo';
  p := PChar(s);
  p1 := p;
  WriteLn('"', p^, '" ', (i - i1) div 2 + 1);
  Inc(p, 2);
  WriteLn('"', p^, '" ', (i - i1) div 2 + 1);
end;
Oder verpack die die Formel einfach in eine Funktion, so ala
Delphi-Quellcode:
function GetCharIndex(C, Str: PChar): Integer;
//oder
function GetCharIndex(C: PChar; Str: String): Integer;
PS:
Zitat:
addr(pointer(s)^)
- mach einen "Pointer" aus dem String (interner Stringzeiger)
- dereferenziere (^) ihn wieder (Pointer rückgängig)
- und mach wieder einen Zeiger/Pointer (addr) daraus
$2B or not $2B

Geändert von himitsu (30. Mai 2012 um 00:12 Uhr)
  Mit Zitat antworten Zitat