PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Eggdrop [tcl]: Replace


Iceman
26.03.2005, 14:48
Hi.

wie kann ich in ein tcl einen replace setzen und zwar sieht die zeile ungefähr so aus:

[frankfurt] [meier müller schulze]

so und zwar möcht ich jetzt alle leer zeichen mit ein "." ersetzen wenn zwischen den "].[" ist dann ein leerzeichen und die klammern sollen letztlich entfallen. Was noch wäre das letzte zeichen vor der klammer soll kein "." sich sondern ein "-"

so das es am ende so aussieht:

frankfurt meier.müller-schulze

weis einer ob man so ein replace setzen kann


ChaosKrieger
26.03.2005, 15:21
schau dir mal "string map" an

By Chaos

noname
21.04.2005, 11:46
havE pHun with ya city/name/surname ;P

script is untested... but should work.



proc echo:nopre { nick uhost handle chan arg } {
set rlstmp [check:string $arg]
set stadt [lindex $rlstmp 1]
set rlstmp [lindex $rlstmp 0]
set rlsgrp [check:rlsgrp $rlstmp]
set namen [lindex $rlsgrp 1]
set nachnamen [lindex $rlsgrp 0]
}


proc check:string { nostring } {
regsub -all -- { } $nostring "\." nostring
regsub -all -- {\]\.\[} $nostring " " nostring
regsub -all -- {\[} $nostring "" nostring
regsub -all -- {\]} $nostring "" nostring
return $nostring
}


proc check:rlsgrp { nostring } {
regsub -all -- {\.} $nostring " " nostring
set grp [lindex $nostring end]
regsub -all -- $grp $nostring "\-rep" nostring
regsub -all -- { \-} $nostring "\-" nostring
regsub -all -- {rep} $nostring $grp nostring
regsub -all -- { } $nostring "\." nostring
regsub -all -- {\-} $nostring " " nostring
return $nostring
}