AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zeilenumbruch aus TStringList löschen

Ein Thema von fanavity · begonnen am 5. Sep 2011 · letzter Beitrag vom 5. Sep 2011
Antwort Antwort
Seite 1 von 2  1 2      
fanavity

Registriert seit: 2. Sep 2011
65 Beiträge
 
#1

Zeilenumbruch aus TStringList löschen

  Alt 5. Sep 2011, 11:30
Delphi-Version: 5
Hallo,

ich hatte eine Datei, die mit ; geteilt war. Also habe ich Sie gesplittet und in eine TSTringlist geladen. Nun stehen logischerweise alle Teilstrings untereinander.. Diese würde ich jetzt aber gerne in ein StringGrid laden.. Immer 3 Spalten pro Zeile..

Nur leider bekomme ich das nicht hin..

Das ist momentan mein Code
Delphi-Quellcode:
for i := 0 to NewList.Count -1 do begin

        StringGrid1.RowCount := StringGrid1.RowCount+1; //Immer eine Zeile hinzufügen
        //ListBox1.Items.Add(NewList.Strings[i]);
        StringGrid1.Cols[i].Add(NewList.Strings[i]); // Es werden nur die ersten 3 Strings angezeigt, danach kommt nichts mehr, da die ja in einem weg stehen.. Ich müsste also nach jedem 3. String eine Zeile weiter runter ;)

   end;
Ich hoffe das ist verständlich Ich will auch keine Lösungen von euch, sondern nur Hilfen.. Also wich ich das Problem lösen kann.. Verwendet wird Delphi 5

M.f.G.

fanavity
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Zeilenumbruch aus TStringList löschen

  Alt 5. Sep 2011, 12:08
Anzahl der StringGrid-Zeilen = Anzahl der Listenelemente durch 3 (bei Rest eine mehr). Ob Du jetzt in eine neue Zeile musst, kannst Du mit MOD() einfach herausbekommen (wenn i mod 3 = 0, dann nächste Zeile).
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
fanavity

Registriert seit: 2. Sep 2011
65 Beiträge
 
#3

AW: Zeilenumbruch aus TStringList löschen

  Alt 5. Sep 2011, 12:19
Das verstehe ich nicht so ganz. Die Anzahl der benötigten Zeilen erstellt er mir schon richtig. Nur bekomme ich die Tstringlist die Momentan so aussieht:

1 X a
1 X b
1 X c
_
2 X a
2 X b
2 X c
_
3 X a
3 X b
3 X c

a,b,c sind jeweils die teilstrings.. eig ist es a,b,c,d,e,f,g,... Aber ich habe der logik halber schonmal gedanklich nach jedem 3. nen trennstrich eingefügt.. Der existiert in der TStringlist nocht nicht.
So bekomme ich es nicht hin!Das ist die gewünschte form^^)

1 a b c
2 a b c
3 a b c

Auch hier stellt 1,2,3 nur wieder die gedankliche einteilung der Datensätze dar

M.f.G.
fanavity

Edit:
Delphi-Quellcode:
for i := 0 to NewList.Count -1 do begin

        StringGrid1.RowCount := StringGrid1.RowCount+1; //Immer eine Zeile hinzufügen
        //ListBox1.Items.Add(NewList.Strings[i]);
        StringGrid1.Cols[i].Add(NewList.Strings[i]); // Es werden nur die ersten 3 Strings angezeigt, danach kommt nichts mehr, da die ja in einem weg stehen.. Ich müsste also nach jedem 3. String eine Zeile weiter runter ;)

   end;
Wenn ich wie hier StringGrid1.Cols nehme, dann schreibt er mir die ersten 3 richtig auf.. (also eine Zeile) Dann zeigt er aber nichts mehr, da ich mein Grid auf 3 Zeilen begrenzt habe.. Ich müsste also Quasi nach jedem 3. STring aus der Tstringlist ne neue Zeile haben..

Wenn ich STringGRid1.Rows nehme, schreibt er mir sie untereinader weg, in die erste Spalte!

Geändert von fanavity ( 5. Sep 2011 um 12:22 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Zeilenumbruch aus TStringList löschen

  Alt 5. Sep 2011, 12:33
Nun muss ich doch nochmal nachfragen. Angenommen, Deine Stringliste sieht so aus:
Code:
01
02
03
04
05
06
07
08
09
10
usw.
Dann möchtest Du es so im StringGrid haben, richtig?
Code:
01 | 02 | 03
------------
04 | 05 | 06
------------
07 | 08 | 09
------------
10 |
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
fanavity

Registriert seit: 2. Sep 2011
65 Beiträge
 
#5

AW: Zeilenumbruch aus TStringList löschen

  Alt 5. Sep 2011, 12:35
Genau richtig, dass ist mein Problem

Vielleicht ein wenig umständlich erklärt
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Zeilenumbruch aus TStringList löschen

  Alt 5. Sep 2011, 12:52
Also wie gesagt: der erste String in Deiner Liste hat ja den Index 0, der zweite den Index 1 usw. Deine Laufvariable i entspricht ja dann diesem Index, so wie es in Deinem Code steht. Ist diese also restlos durch 3 teilbar, dann muss es eine neue Zeile werden.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
fanavity

Registriert seit: 2. Sep 2011
65 Beiträge
 
#7

AW: Zeilenumbruch aus TStringList löschen

  Alt 5. Sep 2011, 12:54
Ja das weiß ich ja.. Nur wie sage ich dem Programm:" Hey, geh mal in eine neue Zeile! ?"
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Zeilenumbruch aus TStringList löschen

  Alt 5. Sep 2011, 12:56
Indem Du auf StringGrid.Cells zugreifst, da kannst Du Zeile und Spalte der aktuellen Zelle angeben.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
fanavity

Registriert seit: 2. Sep 2011
65 Beiträge
 
#9

AW: Zeilenumbruch aus TStringList löschen

  Alt 5. Sep 2011, 13:01
Das weiß ich auch, nur irgendwie stehe ich auf dem Schlauch. Ist mein Lösungsansatz von oben denn richtig oder muss ich den kommplett umbauen?

wenn ich es mit StringGrid1.Cells[x,y] versuche, bekomme ich immer eine Diagonale ^^

Wie gesagt, ich stehe auf dem Schlauch :/
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Zeilenumbruch aus TStringList löschen

  Alt 5. Sep 2011, 13:12
Ungetestet:
Delphi-Quellcode:
procedure FillGridFromStringlist(List: TStrings; Grid: TStringGrid; ColsPerRow: integer);
var
  i, Zeile, Spalte: integer;
begin
  if not Assigned(List) or not Assigned(Grid) then
    raise Exception.Create('Liste und Grid müssen vorhanden sein.');
  Grid.RowCount := Grid.FixedRows + List.Count div ColsPerRow;
  if List.Count mod ColsPerRow > 0 then
    Grid.RowCount := Grid.RowCount + 1;
  for i := 0 to List.Count - 1 do
    begin
      Zeile := Grid.FixedRows + i div ColsPerRow;
      Spalte := Grid.FixedCols + i mod ColsPerRow;
      Grid.Cells[Spalte, Zeile] := List[i];
    end;
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz