![]() |
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
Dieses Thema wurde von "Sharky" von "Programmieren allgemein" nach "VCL / WinForms / Controls" verschoben.
Und schwupp in die richtige Sparte geschoben ;-) |
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?
|
Re: textdateien in "TStringGrid"
Zitat:
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! |
Re: textdateien in "TStringGrid"
ich würd mal nach "AssignFile" suchen und auch nach der "Copy" Funktion. Das sollte dir vorerst weiterhelfen. :angel:
|
Re: textdateien in "TStringGrid"
Delphi-Quellcode:
????
Stringgrid1.LoadFromFile('c:\blub.txt');
ich glaub das geht |
Re: textdateien in "TStringGrid"
Zitat:
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:
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. |
Re: textdateien in "TStringGrid"
Zitat:
schön aber will aber den user namen zum beispiel in eine spalte tun? habt ihr noch vorschläge oder tipps? |
Re: textdateien in "TStringGrid"
Zitat:
Mit Cell[Spalte, Zeile] := Text kannst Du reinschreiben Beisp:
Delphi-Quellcode:
Das sollte Dir nun als Hilfe reichen.
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; Wie man mit Asign umgeht kannst Du ja weiter oben in meinem 1. beisp. sehen. Viel Spaß ps: herzlich willkommen in der DP :dp: |
Re: textdateien in "TStringGrid"
Zitat:
|
Re: textdateien in "TStringGrid"
Zitat:
|
Re: textdateien in "TStringGrid"
Zitat:
|
Re: textdateien in "TStringGrid"
Liste der Anhänge anzeigen (Anzahl: 1)
hi!
ich soll aus dem text(nlist.txt) user ,lastname, givenname und ip adresse in den stringgrid schreiben....könntet ihr mir ein beispiel für das rauskopieren und in die namensspalte einlesen geben?? danke für eure tipps! |
Re: textdateien in "TStringGrid"
Zitat:
Code:
Es sollte nicht schweer sein, diesen Algorithmus in Pascal zu übersetzen.
Öffne Datei
solange nicht Dateiende tue start Lese s aus Datei ist in s 'User:' enthalten dann s := copy(s, 7, 100) ist in s ' Last Name:' enthalten dann s := copy(s, 14, 100) ist in s ' Given Name:' enthalten dann s := copy(s, 15, 100) ... schreibe s in StringGrid ende Schliese Datei ist in s 'xxx' enthalten macht man mit dem Befehl Pos(s, 'xxx') > 0 Den Rest solltest Du aleine hinbekommen. |
Re: textdateien in "TStringGrid"
Ich würde das etwa so machen !
Delphi-Quellcode:
procedure TForm1.BitBtn1Click(Sender: TObject);
var Datei : TStringList; i,j : Integer; tempString : String; emptyCol : Boolean; begin Datei := TStringList.Create; Datei.LoadFromFile('nlist.txt'); i := 0; while i < Datei.Count -1 do //durch die ganze Datei if pos('User: ',Datei[i]) <> 0 then // wenn String "User: " gefunden begin emptyCol := False; //bisher ncoh keine Leerstelle for j := 0 to 5 do //die nächsten 6 Zeilen begin tempString := Datei[i]; //Zeile kopieren nach tempString case j of 0 : delete(tempString,1,6); //User 1 : delete(tempString,1,12); //Last name 2 : delete(tempString,1,13); //Given name 3 : begin //empty Column tempString := ''; emptycol := True; end; 4 : delete(tempString,1,2); //network kind 5 : delete(tempString,1,14);//network address end; if (tempString <> '') then begin if not emptycol then StringGrid1.cols[j].Add(tempString) // 1-3 column else StringGrid1.cols[j-1].Add(tempString); //5 + 6 column StringGrid1.RowCount := StringGrid1.RowCount +1; //redim Stringgrid end; inc(i); end; end else inc(i); Datei.Free; end; |
Re: textdateien in "TStringGrid"
Zitat:
danke für euere tipps! :dp: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:22 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