Text umformatieren (u.a. Umlaute)

Anfängerfragen zum Programmieren mit PureBasic.
Mr.Vain
Beiträge: 88
Registriert: 29.10.2009 00:14

Text umformatieren (u.a. Umlaute)

Beitrag von Mr.Vain »

Hallo,

ich möchte kurz nachfragen, ob PB eine Funktion hat, um Umlaute umzuwandeln:

Schröder => schroeder
Von Herz = > vonherz
Karl-Heinz = > karlheinz

Ebenso (wie oben im Beispiel) möchte ich Leerzeichen/Bindestriche entfernen.

Eine Funktion, um alles kleinzuschreiben gibt es ja bereits.
Zuletzt geändert von Mr.Vain am 04.03.2010 12:23, insgesamt 1-mal geändert.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Re: Text umformatieren (u.a. Umlaute)

Beitrag von Kaeru Gaman »

wo hast du da nen Umlaut umgewandet..? :?

schau dir das Kapitel "String" in der Help mal an.
"Remove" und "Replace" dürftest du brauchen.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Mr.Vain
Beiträge: 88
Registriert: 29.10.2009 00:14

Re: Text umformatieren (u.a. Umlaute)

Beitrag von Mr.Vain »

Kaeru Gaman hat geschrieben:wo hast du da nen Umlaut umgewandet..? :?

schau dir das Kapitel "String" in der Help mal an.
"Remove" und "Replace" dürftest du brauchen.

Sorry, hab's wohl übersehen ;)

Werd mir die Kapitel mal ansehen.
Benutzeravatar
dysti
Beiträge: 656
Registriert: 10.02.2006 18:34
Wohnort: Schlicktown

Re: Text umformatieren (u.a. Umlaute)

Beitrag von dysti »

Hier hast du mal Beispiele:

Code: Alles auswählen

a$="Schröder"
b$="Von Herz"
c$="Karl-Heinz"

b$=StringField(b$, 1, " ")+StringField(b$, 2, " ")
c$=StringField(c$, 1, "-")+StringField(c$, 2, "-")

Debug "------ StringField ----"
Debug b$
Debug c$

; Schröder
ReplaceString(a$, "ö", "oe", #PB_String_NoCase, 1) 

d$=ReplaceString(b$, " ", "", #PB_String_NoCase, 1)
e$=ReplaceString(c$, "-", "", #PB_String_NoCase, 1)

Debug "------ ReplaceString --"
Debug d$
Debug e$
f$=RemoveString(b$," ",#PB_String_NoCase)
g$=RemoveString(c$,"-",#PB_String_NoCase)
 
Debug "------ RemoveString --"
Debug f$
Debug g$
oder so:

Code: Alles auswählen

; Schröder
ReplaceString(a$, "ö", "oe")
d$=ReplaceString(b$, " ", "")
e$=ReplaceString(c$, "-", "")

Debug "------ ReplaceString --"
Debug d$
Debug e$
f$=RemoveString(b$," ")
g$=RemoveString(c$,"-")
 
Debug "------ RemoveString --"
Debug f$
Debug g$
PB5 / Spiderbasic / WB14 / Win7 / Win8.1 / Win10 / Debian 9
sibru
Beiträge: 265
Registriert: 15.09.2004 18:11
Wohnort: hamburg

Re: Text umformatieren (u.a. Umlaute)

Beitrag von sibru »

Hier mal ´ne fertige Funktion:

Code: Alles auswählen

;+--------------------------------------------------------------------------+
;|          PureBasic-QuellCode "UmlautRepl" mit allen ModulBody´s          |
;| erstellt durch Programm "PB_Mod2Body", Vers. 10217a am 04.03.2010, 13:45 |
;+--------------------------------------------------------------------------+


;Modul      UmlautRepl Version 1.00 vom 27.02.2006
;#PB_Vers  = "4.20"
;
;Funktion:  ersetzt alle deutschen Umlaute (Ä, Ö, Ü, ä, ö, ü und ß) durch Doppelzeichen (Ae, Oe, Ue, ae, oe, ue und ss)
;
;Aufruf:    Out$ = UmlauteRepl(Text$)
;           Text$ : String, in dem unerwünschte deutsche Umlaute (Ä, Ö, Ü...)
;                    enthalten sein können
;
;           Diese Funktion liefert den Eingangs-Parameter zurück, wobei jeder
;           deutsche Umlaut durch ein Doppelzeichen ersetzt wurde
;           (Ä-->Ae, ä-->ae, ß-->ss...)
;

;#jaPBeExt exit

 ;==========  Begin Modul "C:\AlsterSoft\PB4.20\Module\Wort.PBI"  ==========
;#PB_Vers  = "4.20"
Global Wort_Ende$       
Global Wort_Klammer$    
Procedure.s Wort(*Param)
  Protected Param$, Wort$
  If *Param>1
    Param$ = LTrim(PeekS( *Param))
    If Wort_Ende$ = ""
      If Wort_Klammer$ = ""
        Wort_Klammer$ = Chr(34) + Chr(39) + Chr(180) + Chr(255)  
      EndIf
      If FindString(Wort_Klammer$, Left(Param$, 1), 1) And Param$>""
        Wort_Ende$ = Left(Param$, 1)
        Param$ = Right(Param$, Len(Param$) - 1)
      Else
        Wort_Ende$ = " "
      EndIf
    EndIf
    While Left(Param$, 1)<>Wort_Ende$ And Param$>""
      Wort$ + Left(Param$, 1)
      Param$ = Mid(Param$, 2)
    Wend
    Wort_Ende$ = "" : Wort_Klammer$ = ""
    PokeS(*Param, LTrim(Right(Param$, Len(Param$) - 1)))
  EndIf
  ProcedureReturn Wort$
EndProcedure
 ;==========  Ende Modul "C:\AlsterSoft\PB4.20\Module\Wort.PBI"  ==========

Procedure.s UmlautRepl(Text$)
  Protected Queue$ = "Ä Ae Ö Oe Ü ue ä ae ö oe ü ue ß ss", Such$
  While Queue$>"" : Such$ = Wort(@Queue$)
    Text$ = ReplaceString(Text$, Such$, Wort(@Queue$),1)
  Wend
  ProcedureReturn Text$
EndProcedure


Debug UmlautRepl("Schröder")
viel Erfolg...
SiBru
Bild Bild
Mr.Vain
Beiträge: 88
Registriert: 29.10.2009 00:14

Re: Text umformatieren (u.a. Umlaute)

Beitrag von Mr.Vain »

Danke für die schnelle und ausführliche Hilfe. :allright:
Antworten