Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - StrCopy und Teilstrings?
Wolle92 - Sa 08.09.07 09:29
Titel: StrCopy und Teilstrings?
Hallo,
Ich wüsste gerne, wie ich Teilstrings eines PChar-Strings in einen anderen kopieren kann...
Gausi - Sa 08.09.07 10:55
Auf Anhieb würde ich den PChar nach String casten und dann mit Pos und Copy arbeiten.
jasocul - Sa 08.09.07 10:59
StrLCopy könnte hilfreich sein.
In der Hilfe von Delphi findest Du unter String-Verarbeitung (nullterminiert) noch ein ganze Menge mehr Funktionen.
Wolle92 - Sa 08.09.07 11:05
Mit StrLCopy kann man aber nur einen Teilstring am Anfang kopieren... das will ich aber nicht
jasocul - Sa 08.09.07 11:11
Hast Du Dir die weiteren Funktionen mal angesehen (z.B. StrMove)? Du musst als "Source" ja nicht am Anfang des "alten" Strings anfangen. :wink:
Ansonsten solltest Du Gausis Rat befolgen. Wenn ich nicht zwingend mit PChar arbeiten muss, arbeite ich oft genauso.
Wolle92 - Sa 08.09.07 13:14
Kann man denn in DLLs Strings benutzen, wenn die nicht nach außen gebracht werden?
jaenicke - Sa 08.09.07 13:51
Ja, kann man, Probleme bekommst du nur, wenn du Strings als Parameter oder Rückgabewerte von exportierten Funktionen benutzt, die du dann also von außerhalb aufrufst. Innerhalb der DLL kannst du alles ganz normal nutzen (ohne ShareMem und die DLL natürlich ;-)).
Wolle92 - Sa 08.09.07 14:52
Aha, ok, aber kannst du mir erklären, wieso diese funktionsweise nicht funktioniert:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| function decode(text: PChar): PChar; export; var current, text2, result2: String; begin result2 := ''; text2 := String(text); while not (text2 = '') do begin current := Copy(text2,1,Pos('z',text2)-1); text2 := Copy(text2,Pos('z',text2)+1,Length(text2)-Pos('z',text2)); result2 := result2 + Chr(Byte(StrtoInt(current))); end; result := PChar(result2); end; |
Wenn ich aber vor
current := Copy(text2,1,Pos('z',text2)-1); ein beliebiges ShowMessage setze, alles einwandfrei funktioniert?
jaenicke - Do 13.09.07 00:16
Tut mir leid, ich hatte den Thread aus den Augen verloren, deshalb die späte Antwort.
Was passiert denn? Ich meine, ich kann das auch einfach mal ausprobieren, aber das kannst du ja eigentlich auch gleich selbst sagen.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!