AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Frage zu TStringLists

Offene Frage von "DMonkey"
Ein Thema von DMonkey · begonnen am 2. Sep 2009 · letzter Beitrag vom 2. Sep 2009
Antwort Antwort
DMonkey

Registriert seit: 2. Sep 2009
53 Beiträge
 
#1

Frage zu TStringLists

  Alt 2. Sep 2009, 18:48
HI,ich habe ein problem bei einem meiner Programme und Würde mich über eine antwort freuen
Delphi-Quellcode:
procedure Hauptform1.Speichern1Click(Sender: TObject);
var Zeilen, Spalten, i, j: Integer;
    Tabelle: TStringList;
begin

savedialog.execute;
  // Stringliste erzeugen
  Tabelle := TStringList.Create;
  Zeilen := stringgrid1.colcount;
  Spalten := stringgrid1.rowcount;
  for i := 0 to Zeilen-1 do
  begin
    for j := 0 to Spalten-1 do
    begin
     Tabelle.Strings[i*Spalten+j] := StringGrid1.Cells[j,i] ;
    end;
  end;
  Tabelle.savetoFile (savedialog.filename+'.tab');
end;
er sagt mir dann immer wenn ich dan button klicke
"Listenindex überschreitet das Maximum(0)" wie kann ich das Maximum höher setzen


,Danke im Vorraus
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.987 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Frage zu TStringLists

  Alt 2. Sep 2009, 18:51
Hallo, herzlich Willkommen in der DP!

Wenn du eine neue TStringList erzeugst ist diese leer und kannst somit keine einzelnen Zeilen ansprechen.

Neue Einträge kannst du so hinzufügen:

Tabelle.Add(StringGrid1.Cells[j,i]); Und vergiss nicht, die StringList wieder freizugeben:

Delphi-Quellcode:
Tabelle := TStringList.Create;
try
  // dein Code ...
finally
  FreeAndNil(Tabelle);
end;
Und nochwas: Wenn man bei deinem Speicherdialog auf "Abbrechen" klickt, dann knallt's.

So ist es richtig:
Delphi-Quellcode:
if SaveDialog.Execute then
   // Speichern
Grüße, Matze
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

Re: Frage zu TStringLists

  Alt 2. Sep 2009, 18:58
Weil ich heute mal meinen sozialen Tag habe:
Delphi-Quellcode:
procedure Hauptform1.Speichern1Click(Sender: TObject);
var Zeilen, Spalten, i, j: Integer;
    Tabelle: TStringList;
begin
  if savedialog.execute then
    begin
      // Stringliste erzeugen
      Tabelle := TStringList.Create;
      try
        Zeilen := stringgrid1.colcount;
        Spalten := stringgrid1.rowcount;
        for i := 0 to Zeilen-1 do
          begin
            for j := 0 to Spalten-1 do
              begin
                Tabelle.Add(StringGrid1.Cells[j,i]);
              end;
          end;
        Tabelle.savetoFile(savedialog.filename+'.tab');
      finally
        Tabelle.Free;
      end;
    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
DMonkey

Registriert seit: 2. Sep 2009
53 Beiträge
 
#4

Re: Frage zu TStringLists

  Alt 2. Sep 2009, 19:00
Danke man ,du hast mir echt geholfen
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.987 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Frage zu TStringLists

  Alt 2. Sep 2009, 19:03
Und ich erkläre es extra ausführlich.

*mit Deddy auf Kriegsfuß steh'*
  Mit Zitat antworten Zitat
Andreas L.
(Gast)

n/a Beiträge
 
#6

Re: Frage zu TStringLists

  Alt 2. Sep 2009, 19:04
Nur eine kleine Anmerkung:
Delphi-Quellcode:
...
  Zeilen := stringgrid1.colcount;
  Spalten := stringgrid1.rowcount;
...
Row heißt Zeile
Column heißt Spalte

Du hast also die Variablen vertauscht
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

Re: Frage zu TStringLists

  Alt 2. Sep 2009, 19:05
Zitat:
Zuletzt bearbeitet von Matze am 02.09.2009, 19:56, insgesamt 5-mal bearbeitet.
Meinst Du, ich schau immer wieder zwischendurch nach, was Du nun schon wieder getippt hast?
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
2. Sep 2009, 21:36
Dieses Thema wurde von "Christian Seehase" von "Programmieren allgemein" nach "Object-Pascal / Delphi-Language" verschoben.
Ein delphispezifisches Problem
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
39.184 Beiträge
 
Delphi 10.4 Sydney
 
#9

Re: Frage zu TStringLists

  Alt 2. Sep 2009, 22:00
Zitat:
savedialog.filename+'.tab'
warum läßt du das '.tab' nicht im SaveDialog mit angeben?

( .DefaultExt = 'tab' und schon wird dieses automatisch angehängt, wenn keine Extention angegeben wurde und .Filter nicht vergessen )
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 01:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf