AGB  ·  Datenschutz  ·  Impressum  







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

Textdatei in StringGrid anzeigen?

Ein Thema von Borschti · begonnen am 15. Nov 2007 · letzter Beitrag vom 15. Nov 2007
Antwort Antwort
Seite 1 von 3  1 23      
Borschti

Registriert seit: 1. Nov 2007
Ort: Marburg Lahn
235 Beiträge
 
Delphi 2007 Professional
 
#1

Textdatei in StringGrid anzeigen?

  Alt 15. Nov 2007, 08:38
Hallo,

ich habe ein paar Probleme mit dem einlesen einer Textdatei in eine StringGrid Komponente und zwar soll meine Textdatei so aufgebaut sein:

52323; Müller; Hans; Kühle Bäume 12; 43186; Jesberg;
37459; Schmidt; Jörg; Am Schergarten 3; 84920; Sachsenhausen;
...

Also die Verschiedenen Datensätze sollen untereinander stehen und die Einträge für die einzelnen Zellen sollen durch Semikolons getrennt sein.

Also die Datei habe ich schon durch einen TOpenDialog geöffnet und in den Zwischenspeicher abgelegt.
Nun weiß ich aber nicht weiter, wie kann ich Delphi Signalisieren das es den Inhalt zwischen den Semikolons in die einzelnen Zellen packen soll und am Ende einer Zeile in die nächste Zeile springen soll und dort von vorne anfangen soll...

Mit Pos und PosEx habe ich es schon versucht aber bei einer angestrebten Menge von 10 Datensätzen wird der Quelltext einfach zu riesig.

Fallls jemand ein paar Tipps oder vielleicht ein gut Kommentiertes Beispiel bzw. Tutorial kennt, wie ich die Sache angehen könnte, wäre ich sehr dankbar.

Ich hoffe ich bin in dem Forenbereich hier richtig, falls nicht bitte verschieben

mfg
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Textdatei in StringGrid anzeigen?

  Alt 15. Nov 2007, 08:55
Hallo,

die Spalten und Zeilen eines StringGrid kannst du als StringList ansprechen:

Explode(Line[i], ';', StringGrid.Rows[iRow]); Explode

Grüße vom marabu
  Mit Zitat antworten Zitat
Thanatos81
(Gast)

n/a Beiträge
 
#3

Re: Textdatei in StringGrid anzeigen?

  Alt 15. Nov 2007, 09:05
Ohne Explode geht auch:
Delphi-Quellcode:
var sl: TStringList;
begin
  sl := TStringList.Create;
  sl.LoadFromFile('d:\test.csv');
  try
    StringGrid1.Rows[1].Delimiter :=';'; //Trennzeichen festlegen
    StringGrid1.Rows[1].DelimitedText := sl[1]; //getrennten Text zuweisen
  finally
    FreeAndNil(sl);
  end;
//Edit Explode heißt das Ding nicht Explore
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Textdatei in StringGrid anzeigen?

  Alt 15. Nov 2007, 09:09
Hallo Thomas,

Borschti hat seine Delphi Version nicht angegeben, aber wenn er eine der neueren Versionen benutzt, dann kann er mit der property StrictDelimiter zum Ziel gelangen. Ohne diese Funktionalität trennt der interne Parser auch bei Leerstellen.

Freundliche Grüße
  Mit Zitat antworten Zitat
Borschti

Registriert seit: 1. Nov 2007
Ort: Marburg Lahn
235 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Textdatei in StringGrid anzeigen?

  Alt 15. Nov 2007, 09:12
Also erstmal danke für die Antworten, also ich benutze Delphi 7.

Werde mir eure Vorschläge mal genauer anschaun.
  Mit Zitat antworten Zitat
Thanatos81
(Gast)

n/a Beiträge
 
#6

Re: Textdatei in StringGrid anzeigen?

  Alt 15. Nov 2007, 09:16
Zitat von marabu:
Hallo Thomas,

Borschti hat seine Delphi Version nicht angegeben, aber wenn er eine der neueren Versionen benutzt, dann kann er mit der property StrictDelimiter zum Ziel gelangen. Ohne diese Funktionalität trennt der interne Parser auch bei Leerstellen.

Freundliche Grüße
Ui, das wusste ich auch noch nicht, wahrscheinlich weil ich selber kaum mit den Delimitern arbeite Aber Danke für den Hinweis, man lernt ja nie aus!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Textdatei in StringGrid anzeigen?

  Alt 15. Nov 2007, 09:36
weitere lösung CSVDataSet + DBGrid
Markus Kinzler
  Mit Zitat antworten Zitat
Borschti

Registriert seit: 1. Nov 2007
Ort: Marburg Lahn
235 Beiträge
 
Delphi 2007 Professional
 
#8

Re: Textdatei in StringGrid anzeigen?

  Alt 15. Nov 2007, 10:12
Zitat von Thanatos81:
Delphi-Quellcode:
var sl: TStringList;
begin
  sl := TStringList.Create;
  sl.LoadFromFile('d:\test.csv');
  try
    StringGrid1.Rows[1].Delimiter :=';'; //Trennzeichen festlegen
    StringGrid1.Rows[1].DelimitedText := sl[1]; //getrennten Text zuweisen
  finally
    FreeAndNil(sl);
  end;
Hallo,

also für diese Möglichkeit Interessiere ich mich wohl am meisten, kann man das vielleicht auch mit einem TOpenDialog machen?
Wenn ja, wie könnte ich das am besten umsetzen? Hab das gerade mal versucht aber dabei kam nichts vernünftiges heraus :/
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

Re: Textdatei in StringGrid anzeigen?

  Alt 15. Nov 2007, 10:17
Delphi-Quellcode:
var sl: TStringList;
begin
  if OpenDialog.Execute then
    begin
      sl := TStringList.Create;
      try
        sl.LoadFromFile(OpenDialog.FileName); //ausgewählte Datei einlesen
        StringGrid1.Rows[1].Delimiter :=';'; //Trennzeichen festlegen
        StringGrid1.Rows[1].DelimitedText := sl[1]; //getrennten Text zuweisen
      finally
        FreeAndNil(sl);
      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
Borschti

Registriert seit: 1. Nov 2007
Ort: Marburg Lahn
235 Beiträge
 
Delphi 2007 Professional
 
#10

Re: Textdatei in StringGrid anzeigen?

  Alt 15. Nov 2007, 11:32
Super hat geklappt, danke

Aber jetzt liest er ja nur die erste Zeile meiner Text Datei ein, ich will aber das die jeweils zweite Zeile meiner Datei in die zweite Zeile des StringGrids, die dritte Zeile meiner Datei in die dritte Zeile des StringGrids usw. eingelesen wird.

Also ich bin jetzt soweit das ich mit einer Schleife zwar alle Felder des StringGrids ausfüllen kann aber halt nur mit dem Inhalt der ersten Zeile meiner Datei...

Ich hoffe ich konnte das jetzt einigermaßen gut vermitteln

Also ich bräuchte einen Befehl mit dem Delphi beim übertragen der Daten in das StringGrid am Ende einer Zeile in die nächste Zeile springt und dort mit dem einlesen von vorne anfangt bis er wieder am Ende der Zeile angelangt ist usw...
Ich habe gehört das dies mit einem Carriage Return Symbol möglich ist, nur weiß ich nicht wie ich das in einer for-Schleife bzw. überhaupt einbinden kann :/

schonmal danke für alle Antworten,

mfg
Alex
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 10:30 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