Hallo
Gibt es eine Möglichkeit aus einer Textdatei ausgelesene Kleinbuchstaben groß zu schreiben?
Eventuell erst mit String auslesen dann unwandeln und wieder einsetzten oder eben getrennt anzeigen...
Geht das? Wenn ja wie?
Danke
Hallo
Gibt es eine Möglichkeit aus einer Textdatei ausgelesene Kleinbuchstaben groß zu schreiben?
Eventuell erst mit String auslesen dann unwandeln und wieder einsetzten oder eben getrennt anzeigen...
Geht das? Wenn ja wie?
Danke
StringUpper
[/autoit][autoit][/autoit][autoit]; und wieder zurück...
StringLower
Schaue mal in der Hilfe nach StringUpper.
Gruß,
UEZ
Muss einfach sein:
[autoit]
Func _StringUpper($sString)
$_sString = $sString
For $i = 1 To 26
$_sString = StringReplace($_sString, Chr(96 + $i), Chr(64 + $i), 0, 1)
Next
Return $_sString
EndFunc ;==>_StringUpper
lg chess
so noch mal ich...
wenn ich nun eine Buchstaben folage wie dieses:
<h>allo <b>asti2022
habe, wie kann ich nun die Zeichen zwischen < und > zu großbuchstaben umwandeln und anschließend den geasammten text mit den nun in großenbustaben umgewandelten Zeichen ausgeben?
Danke
Wozu gibts eigentlich die Hilfe -> _StringProper
Probiere es mal damit:
[autoit]
#include <Array.au3>
$sText = "<h>allo <b>asti2022"
MsgBox(0, "Test", Convert($sText))
[/autoit][autoit][/autoit][autoit]Func Convert($sText)
Local $aText = StringSplit($sText, "", 2)
Local $ub = UBound($aText) - 1
Local $i
For $i = 0 To $ub
If $aText[$i] = "<" And $i < $ub Then $aText[$i + 1] = StringUpper($aText[$i + 1])
Next
Return _ArrayToString($aText, "")
EndFunc
Gruß,
UEZ
Ich habe jetzt mal das skript von UEZ ausprobiert allerdings stehen dort dann immer noch <>
und genau die wollte ich ja raus schneiden...
Wenn man jetzt die < und > mit StringReplace alle rauslöschen würde und man dann _StringProper macht, wäre es dann so wie du es willst? Ist zwischen < und > immer der erste Buchstabe von einem Wort?
UEZ: Seit wann deklariert man den $i von einer For-Schleife extra? Ich dachte es wird automatisch deklariert.
aber werden dann nicht alle Buchstaben goß geschrieben???
ich will ja nur die zwischen <> groß schreiben...
das ganze soll so sein:
zuerst ist der string etwa so: <h>allo <b>asti2022
dann kommt das skript und macht daraus: Hallo Basti2022
geht das irgendwie???
alles groß geschrieben wird mit StringUpper. Nur die Anfangsbuchstaben werden mit _StringProper großgeschrieben. Und vorher halt mir StringReplace die < und > entfernen.
So?
#include <String.au3>
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Global $sTest = "<d>ies <i>st <e>in <t>est"
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]MsgBox(0, "Vorher", $sTest)
[/autoit] [autoit][/autoit] [autoit]$sTest = StringReplace($sTest, "<", "")
$sTest = StringReplace($sTest, ">", "")
$sTest = _StringProper($sTest)
MsgBox(0, "Nachher", $sTest)
[/autoit]Ich denke das sollte alle Möglichkeiten abdecken:
[autoit]#include <Array.au3>
$sText = "<t>est <gross>buchstaben <3d>i <b>asti"
MsgBox(0, "Test", Convert($sText))
[/autoit][autoit][/autoit][autoit]Func Convert($sText)
Local $aTmp = StringRegExp($sText, "(<\w*>)", 3)
If IsArray($aTmp) Then
For $i = 0 To UBound($aTmp) - 1
$sText = StringReplace($sText, $aTmp[$i], StringUpper(StringMid($aTmp[$i],2, Stringlen($aTmp[$i])-2)))
Next
EndIf
Return $sText
EndFunc ;==>Convert
Alles was zwischen < und > steht wird in Großbuchstaben gewandelt. Egal wieviele in den <> stehen.
Vielen dank läuft super....
ich muss wohl noch ne menge lernen...
danke!!!!!!!
Na dann kannst du den Thread auch auf gelöst setzen.
Du hast nicht gesagt, dass du die spitzen Klammen nicht haben willst.
[autoit][/autoit][autoit][/autoit][autoit]#include <String.au3>
[/autoit][autoit][/autoit][autoit]$sText = "<h>allo <b>asti2022"
$sNew = _StringProper(StringRegExpReplace($sText, "<(.)>", "$1"))
MsgBox(0, "Test", $sNew)
[/autoit]Gruß,
UEZ
UEZ, deine Lösung wird aber jedes Wort am Anfang groß schreiben und kann nicht mi meheren Buchstaben in <> umgehen
[autoit]#Region - Timestamp
; 2012-07-07 17:16:32
#EndRegion
#include <String.au3>
[/autoit][autoit][/autoit][autoit]$sText = "<h>allo halli <b>asti2022 <ad>bumbum didum"
$sNew = _StringProper(StringRegExpReplace($sText, "<(.)>", "$1"))
MsgBox(0, "Test", $sNew)
[/autoit]Das blöde an Regexp per Autoit ist, das man im Ersatzstring nicht in UpperCase umwandeln kann.
Scheint an PCRE zu liegen, in Perl geht das und die Lösung wäre ein 1 Zeiler.
UEZ, deine Lösung wird aber jedes Wort am Anfang groß schreiben und kann nicht mi meheren Buchstaben in <> umgehen
Ich habe bewusst nur die Variante genommen, die zu seinem String passt. Ich wollte nicht zu jede Möglichkeit in betracht ziehen, da es den Rahmen sprengen würde.
Wenn der Text String so aussieht, dann kommt eben so eine Lösung raus.
Gruß,
UEZ