Verfasst: 05.01.2008 18:59
Readme
Und ja, er schnippelt den String dann bis zum Ende...

Und ja, er schnippelt den String dann bis zum Ende...
Das deutsche PureBasic-Forum
https://www.purebasic.fr/german/
Code: Alles auswählen
Procedure.s Spazifize(string.s)
Protected *pos.Character=@string, result$=Space(StringByteLength(string)*2)
Protected *result.Character=@result$
While *pos\c
*result\c=*pos\c
*pos+SizeOf(Character)
*result+SizeOf(Character)*2
Wend
ProcedureReturn result$
EndProcedure
Debug Spazifize("Ich bin ein String.")
Öhm, nö. Oder?AND51 hat geschrieben:P.P.S.: du hast was geschrieben von wegen, um deinen Coe zu beschleunigen, nimmst du Trim()? Das geht nicht, dann schneidest du nänmlich auch alle Leerzeichen rechts weg, doch nach dem letzten Zeichen soll ja auch ein Leerzeichen kommen, oder?
Doch hier... Aber wie gesagt, das allerletzte Zeichen muss immer ein Leerzeichen sein, schließlich soll jedem Buchstaben ja ein Leerzeichen folgen. Dein Trim() bewirkt jedoch, dass links und rechts Leerzeichen abgeschnitten werden. genau genommen entspricht dies nicht der "Aufgabenstellung".milan1612 hat geschrieben:EDIT:
Wenn ich den Check komplett rausnehme und dann am Schluss
einfach Trim() nehme ist meine schneller:Code: Alles auswählen
Procedure.s Spacifize(string.s) Protected newstr.s Protected *ptr.Character = @string While *ptr\c newstr + " " + Chr(*ptr\c) *ptr + SizeOf(Character) Wend ProcedureReturn Trim(newstr) EndProcedure
Dann eben LTrim()AND51 hat geschrieben:Doch hier... Aber wie gesagt, das allerletzte Zeichen muss immer ein Leerzeichen sein, schließlich soll jedem Buchstaben ja ein Leerzeichen folgen. Dein Trim() bewirkt jedoch, dass links und rechts Leerzeichen abgeschnitten werden. genau genommen entspricht dies nicht der "Aufgabenstellung".milan1612 hat geschrieben:EDIT:
Wenn ich den Check komplett rausnehme und dann am Schluss
einfach Trim() nehme ist meine schneller:Code: Alles auswählen
Procedure.s Spacifize(string.s) Protected newstr.s Protected *ptr.Character = @string While *ptr\c newstr + " " + Chr(*ptr\c) *ptr + SizeOf(Character) Wend ProcedureReturn Trim(newstr) EndProcedure