Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   textdateien in "TStringGrid" (https://www.delphipraxis.net/63765-textdateien-tstringgrid.html)

Lila21 22. Feb 2006 16:38


textdateien in "TStringGrid"
 
hallo!
ich brauche hilfe, ich will aus ner textdatei namen in einen "TStringGrid" schreiben.:?
würde mich sehr über tipps freuen!

danke im vorraus!

DP-Maintenance 22. Feb 2006 16:48

DP-Maintenance
 
Dieses Thema wurde von "Sharky" von "Programmieren allgemein" nach "VCL / WinForms / Controls" verschoben.
Und schwupp in die richtige Sparte geschoben ;-)

XeRo 22. Feb 2006 17:19

Re: textdateien in "TStringGrid"
 
ähm. wie genau willst dus denn aufteilen? wie ist die datei aufgebaut? Was genau willst du aus der datei wohin haben?

Lila21 22. Feb 2006 17:36

Re: textdateien in "TStringGrid"
 
Zitat:

Zitat von XeRo
ähm. wie genau willst dus denn aufteilen? wie ist die datei aufgebaut? Was genau willst du aus der datei wohin haben?


will den user, lastname, given name,ip-adresse auslesen und in einer "TStringGrid" ausgeben... noch fragen?


Object Class: User
Current context: GK03.FS
User: baez
Last Name: Baez
Given Name: Caroline
Network Address:
TCP/IP Network Address
IP Address: 10.122.121.107

danke im voraus!

XeRo 22. Feb 2006 17:40

Re: textdateien in "TStringGrid"
 
ich würd mal nach "AssignFile" suchen und auch nach der "Copy" Funktion. Das sollte dir vorerst weiterhelfen. :angel:

pacman1986 22. Feb 2006 17:41

Re: textdateien in "TStringGrid"
 
Delphi-Quellcode:
Stringgrid1.LoadFromFile('c:\blub.txt');
????

ich glaub das geht

MaBuSE 22. Feb 2006 17:49

Re: textdateien in "TStringGrid"
 
Zitat:

Zitat von pacman1986
Delphi-Quellcode:
Stringgrid1.LoadFromFile('c:\blub.txt');

Nein, das geht nicht !!!

Es gibt viele Möglichkeiten eine Textdatei in ein StringGrid zu lesen.

Hier 2 Möglichkeiten:
(Einfach 2 TButton auf ein leeres Form und ein TStringGrid drauf platzieren)

Anmerkung:
  • Es wird ein StringGrid mit 2 Spalten gefüllt.
    1. Spalte ist die Zeilennummer
    2. Spalte ist die ganze Textzeile
    Wenn Du nur Teile der Textzeile in eine Zelle schreiben möchtest kannst du ja den String s mit Copy, pos, ... auseinandernehmen. und den Teilstring in die Zelle schreiben.
Viel Spaß
MaBuSE

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    StringGrid1: TStringGrid;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

const Dateiname = 'C:\boot.ini'; // gibt's ab WinNT

procedure TForm1.FormCreate(Sender: TObject);
begin
  // StringGrid1 soll 2 Spalten haben (eine kleine und eine große Spalte)
  StringGrid1.ColCount := 2;
  StringGrid1.ColWidths[1] := StringGrid1.Width - StringGrid1.ColWidths[0] - 30;
  StringGrid1.RowCount := 1;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  f: TextFile;
  s: string;
begin
  // hier wird eine Textdatei geöffnet und zeilenweise ausgelesen

  // StringGrid auf eine Zeile reduzieren
  StringGrid1.RowCount := 1;

  // Datei öffnen
  AssignFile(f, Dateiname);
  Reset(f);

  // solange das Dateiende noch nicht erreicht ist
  while not eof(f) do
  begin
    // Zeile aus Textdatei in string lesen
    Readln(f, s);

    // in die linke Spalte wird die Zeilennummer geschrieben
    StringGrid1.Cells[0,StringGrid1.RowCount-1] := IntToStr(StringGrid1.RowCount);

    // in die rechte Spalte die Textzeile
    StringGrid1.Cells[1,StringGrid1.RowCount-1] := s;

    // Nach jedem Schreiben wird eine Zeile angehängt
    StringGrid1.RowCount := StringGrid1.RowCount + 1;
  end;

  // Letzte (zuviel) angehängte Zeile wieder entfernen
  StringGrid1.RowCount := StringGrid1.RowCount - 1;

  // Datei schliessen
  CloseFile(f);
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  sl: TStringList;
  i: integer;
begin
  // StringListe im Speicher erzeugen und initialisieren
  sl := TStringList.Create;
  try
    // Text wird in eine StringListe geladen
    sl.LoadFromFile(Dateiname);

    // StringGrid wird auf die "richtige" Zeilenanzahl eingestellt
    StringGrid1.RowCount := sl.Count;

    // Text wird direkt in 2. Spalte übertragen
    StringGrid1.Cols[1].Assign(sl);

    // die "Zeilennummern" werden in einer For Schleife in die 1. Spalte geschrieben
    for i := 0 to sl.Count -1 do
    begin
      StringGrid1.Cells[0,i] := IntToStr(i+1);
    end;
   finally
     // StringListe wieder aus dem Speicher entfernen
     sl.Free;
   end;
end;


end.

Lila21 22. Feb 2006 17:50

Re: textdateien in "TStringGrid"
 
Zitat:

Zitat von XeRo
ich würd mal nach "AssignFile" suchen und auch nach der "Copy" Funktion. Das sollte dir vorerst weiterhelfen. :angel:


schön aber will aber den user namen zum beispiel in eine spalte tun?

habt ihr noch vorschläge oder tipps?

MaBuSE 22. Feb 2006 18:17

Re: textdateien in "TStringGrid"
 
Zitat:

Zitat von Lila21
Zitat:

Zitat von XeRo
ich würd mal nach "AssignFile" suchen und auch nach der "Copy" Funktion. Das sollte dir vorerst weiterhelfen. :angel:

schön aber will aber den user namen zum beispiel in eine spalte tun?
habt ihr noch vorschläge oder tipps?

Mit Copy kannst Du doch den Namen extrahieren.
Mit Cell[Spalte, Zeile] := Text kannst Du reinschreiben
Beisp:
Delphi-Quellcode:
var s: string
begin
  s := 'DelphiPRAXIS.net';

  StringGrid1.RowCount := 1;
  StringGrid1.ColCount := 3;

  // schreibt 'Delphi' in die 1. Spalte
  StringGrid1.Cells[0,0] := Copy(s, 1, 6);  

  // schreibt 'PRAXIS' in die 2. Spalte
  StringGrid1.Cells[1,0] := Copy(s, 7, 6);

  // schreibt '.net' in die 3. Spalte
  StringGrid1.Cells[2,0] := Copy(s, 13, 100);
end;
Das sollte Dir nun als Hilfe reichen.
Wie man mit Asign umgeht kannst Du ja weiter oben in meinem 1. beisp. sehen.
Viel Spaß

ps: herzlich willkommen in der DP :dp:

Lila21 22. Feb 2006 18:33

Re: textdateien in "TStringGrid"
 
Zitat:

Zitat von MaBuSE
Zitat:

Zitat von Lila21
Zitat:

Zitat von XeRo
ich würd mal nach "AssignFile" suchen und auch nach der "Copy" Funktion. Das sollte dir vorerst weiterhelfen. :angel:

schön aber will aber den user namen zum beispiel in eine spalte tun?
habt ihr noch vorschläge oder tipps?

Mit Copy kannst Du doch den Namen extrahieren.
Mit Cell[Spalte, Zeile] := Text kannst Du reinschreiben
Beisp:
Delphi-Quellcode:
var s: string
begin
  s := 'DelphiPRAXIS.net';

  StringGrid1.RowCount := 1;
  StringGrid1.ColCount := 3;

  // schreibt 'Delphi' in die 1. Spalte
  StringGrid1.Cells[0,0] := Copy(s, 1, 6);  

  // schreibt 'PRAXIS' in die 2. Spalte
  StringGrid1.Cells[1,0] := Copy(s, 7, 6);

  // schreibt '.net' in die 3. Spalte
  StringGrid1.Cells[2,0] := Copy(s, 13, 100);
end;
Das sollte Dir nun als Hilfe reichen.
Wie man mit Asign umgeht kannst Du ja weiter oben in meinem 1. beisp. sehen.
Viel Spaß

ps: herzlich willkommen in der DP :dp:

danke werd das beste drausmachen! :coder:


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:23 Uhr.
Seite 1 von 2  1 2      

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