![]() |
Wörter bei Großbuchstaben trennen
Hallo!
ist es möglich einen String auf Groß- und Kleinbuchstaben zu testen? Also mein Problem ist folgendes. Ich habe einen String, der ungefähr so aussieht: "HalloDuMensch" Es sind halt einzelne Wörter, die einfach zusammengeklascht worden sind. Ich möchte aus solchen Zeilen die Wörter filtern, dass ich dann
Ist das irgendwie möglich? Ich hoffe das ich es verständlich umschrieben habe und das mir jemand helfen kann. mfg knolli |
Re: Wörter bei Großbuchstaben trennen
Du kannst einfach alle Großbuchstaben im Text durch einen Großbuchstaben mit vorgestelltem Zeilenumbruch ersetzen ;-):
Delphi-Quellcode:
var
tmp: String; i: Integer; begin tmp := Memo1.Text; for i := Ord('A') to Ord('Z') do tmp := StringReplace(tmp, Chr(i), #13#10 + Chr(i), [rfReplaceAll]); Memo2.Text := Trim(tmp); |
Re: Wörter bei Großbuchstaben trennen
Hier nochmal der selbe Vorschlag...
Delphi-Quellcode:
Gruss
var
tmp: String; z: char; begin tmp := Memo1.Text; for z := 'A' to 'Z' do tmp := StringReplace(tmp, z, #13#10 + z, [rfReplaceAll]); Memo2.Text := Trim(tmp); end; Thorsten |
Re: Wörter bei Großbuchstaben trennen
Liste der Anhänge anzeigen (Anzahl: 1)
Herzlichen Danke!
funtionniert einwandfrei! jetz habe ich aber noch ein Problem. und zwar überprüfe ich ob die Variable sWort länger als 2 ist und trage diese dann ein. Wenn ich dann aber dich procedure ausgelöst habe und ins ergebnis schaue kommen trotzdem leere zeilen. Bild im Anhang
Delphi-Quellcode:
alles was ich nachher noch mache ist, dass die "sonderzeichen" entfernt werden
procedure TWortsuche.Textzerlegen(Sender: TObject);
var sWort, sZeile:string;iLauf, iLauf2:integer; begin For iLauf:=0 to Memo_Seitentext.Lines.Count-1 do Begin sZeile:=Memo_Seitentext.Lines[iLauf]+' '; For iLauf2:=1 to LENGTH(sZeile) do begin sWort:=COPY(sZeile,1,POS(' ',sZeile)); sZeile:=COPY(sZeile,POS(' ',sZeile)+1, LENGTH(sZeile)); IF LENGTH(sWort)>2 then Listbox_Seitenwoerter.Items.Add(TRIM(sWort)); end;//for Length(sZeile) end; // for Memolines end;
Delphi-Quellcode:
woran leigt das?
procedure TWortsuche.SonderZeichen(Sender: TObject);
var iLauf, i:integer; begin For iLauf:=0 to Listbox_Seitenwoerter.Items.Count-1 do begin FOR i:=32 to 255 do Begin CASE i OF 32..64 : Listbox_Seitenwoerter.Items[iLauf]:=StringReplace(Listbox_Seitenwoerter.Items[iLauf],chr(i),'',[rfReplaceAll]); 91..96 : Listbox_Seitenwoerter.Items[iLauf]:=StringReplace(Listbox_Seitenwoerter.Items[iLauf],chr(i),'',[rfReplaceAll]); 123..195 : Listbox_Seitenwoerter.Items[iLauf]:=StringReplace(Listbox_Seitenwoerter.Items[iLauf],chr(i),'',[rfReplaceAll]); 197..213 : Listbox_Seitenwoerter.Items[iLauf]:=StringReplace(Listbox_Seitenwoerter.Items[iLauf],chr(i),'',[rfReplaceAll]); 215..219 : Listbox_Seitenwoerter.Items[iLauf]:=StringReplace(Listbox_Seitenwoerter.Items[iLauf],chr(i),'',[rfReplaceAll]); 221..227 : Listbox_Seitenwoerter.Items[iLauf]:=StringReplace(Listbox_Seitenwoerter.Items[iLauf],chr(i),'',[rfReplaceAll]); 229..245 : Listbox_Seitenwoerter.Items[iLauf]:=StringReplace(Listbox_Seitenwoerter.Items[iLauf],chr(i),'',[rfReplaceAll]); 247..251 : Listbox_Seitenwoerter.Items[iLauf]:=StringReplace(Listbox_Seitenwoerter.Items[iLauf],chr(i),'',[rfReplaceAll]); 253..255 : Listbox_Seitenwoerter.Items[iLauf]:=StringReplace(Listbox_Seitenwoerter.Items[iLauf],chr(i),'',[rfReplaceAll]); End;//case End;//for i end; //For iLauf end; [edit=Matze]Bild angehängt. Imageshack ist erstens meist sehr langsam und zweitens verschwindet das Bild irgendwann von den Servern. MfG, Matze[/edit] |
DP-Maintenance
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.
Delphi-Frage |
Re: Wörter bei Großbuchstaben trennen
ich habe mein problem gelöst.
ich muss die überprüfung nach dem entfernen der "sonderzeichen" durchführen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz