Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Wörter bei Großbuchstaben trennen (https://www.delphipraxis.net/110890-woerter-bei-grossbuchstaben-trennen.html)

knolli 26. Mär 2008 10:57


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
  • Hallo
  • Du
  • Mensch
habe.

Ist das irgendwie möglich?
Ich hoffe das ich es verständlich umschrieben habe und das mir jemand helfen kann.

mfg
knolli

jaenicke 26. Mär 2008 11:04

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);

omata 26. Mär 2008 11:10

Re: Wörter bei Großbuchstaben trennen
 
Hier nochmal der selbe Vorschlag...

Delphi-Quellcode:
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;
Gruss
Thorsten

knolli 26. Mär 2008 11:17

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:
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;
alles was ich nachher noch mache ist, dass die "sonderzeichen" entfernt werden
Delphi-Quellcode:
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;
woran leigt das?

[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 26. Mär 2008 11:21

DP-Maintenance
 
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.
Delphi-Frage

knolli 26. Mär 2008 12:01

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