Schreibweise ändern (so geht das <> So Geht Das)...?
- Ghosty1967
- Beiträge: 205
- Registriert: 29.08.2005 13:56
- Computerausstattung: Intel i7, 128GB Ram, Win10 Ultimate, PB6.00 Alpha 3
- Wohnort: Köln
Schreibweise ändern (so geht das <> So Geht Das)...?
In VB gab es einen String-Befehl, mit dem man einen String in seiner Schreibweise
ändern konnte (weiß nich mehr welcher), also z.B. machte man aus
"dies ist ein testtext, um zu zeigen was passierte" <> "Dies Ist Ein Testtext, Um Zu Zeigen Was Passierte"
gibt es sowas in PB bzw. kennt jemand einen Kniff, um sowas zu realisieren?
ändern konnte (weiß nich mehr welcher), also z.B. machte man aus
"dies ist ein testtext, um zu zeigen was passierte" <> "Dies Ist Ein Testtext, Um Zu Zeigen Was Passierte"
gibt es sowas in PB bzw. kennt jemand einen Kniff, um sowas zu realisieren?
Jedem großzuschreibenden Buchstaben steht doch ein Lerzeichen voran, oder? Dann machs doch so:
Dem ersten steht kein Leerzeichen voran, also mach selber eines davo und benutze hinterher LTrim().
Code: Alles auswählen
Procedure.s SoGehtDas(text.s)
Protected n.l
For n='A' To 'Z'
ReplaceString(text, " "+Chr(n), " "+Chr(n), #PB_String_InPlace)
Next
For n='a' To 'z'
ReplaceString(text, " "+Chr(n), " "+Chr(n-32), #PB_String_InPlace)
Next
ProcedureReturn text
EndProcedure
Debug SoGehtDas("Dies ist ein testtext, um zu zeigen was passierte")
Zuletzt geändert von AND51 am 04.02.2008 22:54, insgesamt 1-mal geändert.
PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End
Code: Alles auswählen
Procedure.s irgendeinBefehl( str.s , firstLetterToo )
Protected *ptr.CHARACTER = @str, space
If firstLetterToo
*ptr\c - 32
EndIf
While *ptr\c <> 0
If *ptr\c = 32
space = 1
Else
If space = 1
*ptr\c - 32
EndIf
space = 0
EndIf
*ptr + SizeOF(CHARACTER)
Wend
ProcedureReturn str
EndProcedure
Debug irgendeinBefehl("hallo ich bin ein string", 1)
//edit:
jetzt auch mit mehr lehrzeichen xD
//edit:
um HeX0R's und Unicodes' willen auch Unicode fähig
Andreas

Zuletzt geändert von Andreas_S am 04.02.2008 23:26, insgesamt 2-mal geändert.
- Ghosty1967
- Beiträge: 205
- Registriert: 29.08.2005 13:56
- Computerausstattung: Intel i7, 128GB Ram, Win10 Ultimate, PB6.00 Alpha 3
- Wohnort: Köln
- HeX0R
- Beiträge: 3042
- Registriert: 10.09.2004 09:59
- Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3 - Kontaktdaten:
Richtig wäre übrigens (soll ja wohl unicodefähig sein):
Code: Alles auswählen
*ptr + SizeOF(CHARACTER)
{Home}.:|:.{Codes}.:|:.{Downloads}.:|:.{History Viewer Online}.:|:.{Bier spendieren}
Übrigens ist man bei deiner Proc gezwungen, den Text mit einem Buchstaben starten zu lassen, wenn man 'firstLetterToo' auf 1 setzt.
PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End
Jetzt das ultimative Update
Andreas

Code: Alles auswählen
Procedure.s irgendeinBefehl( str.s )
Protected *ptr.CHARACTER = @str, space = 1
While *ptr\c <> 0
If *ptr\c = 32
space = 1
Else
If space = 1
If (*ptr\c >= 97) And (*ptr\c <= 122)
*ptr\c - 32
space = 0
EndIf
EndIf
EndIf
*ptr + SizeOf(CHARACTER)
Wend
ProcedureReturn str
EndProcedure
Debug irgendeinBefehl("<hallo +ich -bin 'ein ?string")
Andreas
Jetzt noch ein viel ultimativeres Update!
@ Andreas_S:
Na, kannst du's auch nur mit 1 Variable?
@ Thread:
Speedtest folgt...
@ Andreas_S:
Na, kannst du's auch nur mit 1 Variable?

@ Thread:
Code: Alles auswählen
Procedure.s Capitalize(text.s)
Protected *pos.Character=@text
While *pos\c
While *pos\c < 'a' Or *pos\c > 'z'
*pos+SizeOf(Character)
Wend
*pos\c-32
While (*pos\c >= 'a' And *pos\c <= 'z') Or (*pos\c >= 'A' And *pos\c <= 'Z')
*pos+SizeOf(Character)
Wend
Wend
ProcedureReturn text
EndProcedure
Debug Capitalize("dies ist ein testtext, um zu zeigen was passierte")
PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End