in einem neuen Test Projekt wollte ich die Insert Methode von Lazarus verwenden. Aber sie ging nicht.
Der String der eingefügt werden sollte wurde immer am Anfang eingefügt.
Hier mal ein kleiner Beispiel Code:
Code: Alles auswählen
procedure TForm1.BitBtn1Click(Sender: TObject);
var
s1,s2:string;
begin
s1:=edit1.Text;
s2:='nase';
insert(s1,s2,5);
edit2.Text:=s2;
end;
nase wird nicht an der 5 Stelle eingefügt sondern am Anfang. In meinem Test Projekt ging es eigentlich darum WideStrings und ein UTF8Char in einem wideString einzufügen.
Also habe ich versucht mit utf8Insert die Aufgabe zu erledigen, aber das ging auch nicht, der hat gar nix gemacht.
Als Parameter hat er Strings verlang, was ich seltsam fand, er wollte keine WideStrings.
Also habe ich ein neues Test Projekt aufgemacht, von dem stammt auch der Code von oben.
Ich habe gestern einfach selbst eine Insert Methode geschrieben die sogar auch geht:
Code: Alles auswählen
function InsertPL(const asrc:widestring; const aS1:Widestring; const aIndex:Integer):widestring;
var
str1,str2:widestring;
begin
str1:=UTF8Copy(asrc,1, aindex);
str2:=UTF8Copy(asrc,aindex+1, UTF8Length(asrc));
result:=str1+aS1+str2;
end;
wie ihr sieht es sie recht kurzt, die von Lazarus ist wesentlich länger. Aber sie Funktioniert wenigensts so wie sie soll.
Kann mir jemand das bestätigen ? habe ich ein Fehler gemacht bei der Anwendung ?
Was meiner Insert Methode angeht, kann sie jemand von euch beurteilen und testen ? In meinem eigentlichen Test Projekt Funktioniert sie aufjedenfall *freu*
Was mir auch aufgefallen ist, ich dachte immer insert ist eine Funktion und keine Procedur... wurde das geändert ?