![]() |
Text in Stringgrid sortieren
hi,
ich möchte aus einem Memo oder textdatei (was einfacher is) ein paar sachen auslesen, hab aber leider nich wirklich ahnung wie ich das machen kann. Also: Der Text: NEMO Hidiho GLUBSCHI hi digga wie gehts? ///////// So, nun möchte ich das gern in ein Stringgrid packen, die Grossbeschriebenen Namen in Spalte 1, die kleinen in Spalte 2 und ausm ///// eine rote Spalte...ich weiss, is nich einfach :( also ersma muss vorallem das mit den Namen klappen... HAbt ihr ne Idee wie ich die so einlesen kann, dass sie immer auf die richtige Seite fallen? *help* *schnief* |
Re: Text in Stringgrid sortieren
Hier ist mal ein Beispiel. Du brauchst ein TMemo, TButton und ein TStringGrid. Dann fügst du folgende Prozedur in dein Projekt ein:
Delphi-Quellcode:
Und im OnClick-Ereignis des Buttons führst du folgenden Code aus:
procedure WriteToStringGrid(Lines: TStrings; SG: TStringGrid);
var i, c: Integer; s: String; begin c := 0; for i := 0 to Lines.Count-1 do begin SG.RowCount := SG.RowCount+1; s := Lines[i]; if s[1] = '/' then begin //rote Spalte end else begin if s[1] = AnsiUpperCase(s[1]) then //großgeschrieben begin SG.Cells[0, c] := s; Inc(c); end else //kleingeschrieben SG.Cells[1, i-c] := s; end; end; end;
Delphi-Quellcode:
Nur das mit der roten Spalte habe ich nicht verstanden. Wo soll die denn hin?
procedure TForm1.Button1Click(Sender: TObject);
begin with StringGrid1 do begin ColCount := 2; //zwei Spalten RowCount := 0; //null Zeilen end; WriteToStringGrid(Memo1.Lines, StringGrid1); end; MfG Pr0g |
Re: Text in Stringgrid sortieren
funzt leider nich wirklich :(
Nemo sagt immer Hi digga... die zweite zeile is leer und in der dritten steht nur Glubschi in der vierten Zeile wieder nix und in der fünften links hidiho und rechts wie gehts... irgendwas scheint da nich zu klappen :( achja, die rote zeile ist überflüssig, wie mir gerade aufgefallen ist... Viel besser wäre es wenn einfach links das //// stehen bleibt... |
Re: Text in Stringgrid sortieren
Liste der Anhänge anzeigen (Anzahl: 1)
Hm, dass es nicht geht wundert micht. Wenn ich genau die Codes aus meinem ersten und den Text aus deinem ersten Post nehme, dann klappt es bei mir (siehe angehängtem Screenshot). Ich habe die Prozedur ein bisschen verändert, damit auch die "//////" eingetragen werden:
Delphi-Quellcode:
procedure WriteToStringGrid(Lines: TStrings; SG: TStringGrid);
var i, c: Integer; s: String; begin c := 0; for i := 0 to Lines.Count-1 do begin SG.RowCount := SG.RowCount+1; s := Lines[i]; if (s[1] = AnsiUpperCase(s[1])) or (s[1] = '/') then //großgeschrieben begin SG.Cells[0, c] := s; Inc(c); end else //kleingeschrieben SG.Cells[1, i-c] := s; end; end; |
Re: Text in Stringgrid sortieren
hm...komisch..achja, Hidiho is auch ein Ausspruch
und kein NAme ;) |
Re: Text in Stringgrid sortieren
Achso, ich dachte dass jedes Wort, welches mit einem Großbuchstaben beginnt, ein Name ist, also in die erste Spalte soll. Um alle Wörter, die komplett großgeschrieben sind in die erste Spalte zu packen muss du nur die folgende Zeile:
Delphi-Quellcode:
durch diese ersetzen:
if (s[1] = AnsiUpperCase(s[1])) or (s[1] = '/') then //großgeschrieben
Delphi-Quellcode:
if (s = AnsiUpperCase(s)) or (s[1] = '/') then //großgeschrieben
|
Re: Text in Stringgrid sortieren
Delphi-Quellcode:
Behandelt diese Zeile nur den letzten Eintrag ('//////') oder ist der noch für was anderes gut ?(s[1] = '/') |
Re: Text in Stringgrid sortieren
Ja, wenn der Text mit "/" beginnt, dann wird er in die erste Spalte geschrieben, genauso wie gorßgeschriebene Wörter (vorherige Bedingung in der gleichen If Abfrage).
|
Re: Text in Stringgrid sortieren
Danke, nu funzt das mit dem Einordnen :)
Mein einziges PRoblem ist noch das: Zitat:
Also links: MARLIN (klappt ja schon *G)* rechts: Huh? Was? Ok... *Hoff, dass das geht* |
Re: Text in Stringgrid sortieren
Das würde gehen, jedoch müsste man dazu ein Schema kennen. Gehört der Text hinter einen Namen, bis zum nächsten Namen immer zu dem "Startnamen"? Beispiel:
Code:
Wo soll der Text hin? Einfach hintereinander in die rechte Spalte?
NAME 1
text von 1 ... NAME 2 text von 2 ... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:54 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