![]() |
TXT Zerlegen ???
Hallo , :hi:
so sieht meine txt aus . bla bla bla <== die erste und zweite zeile soll in meiner listview nicht gezeit werden bla bla bla bla "hans musterman" bla bla <== und hier nur Hans Musterman die " Stehen immer davor bla bla bla <== die letzten zeilen auch nicht wobei bla natürlich nicht drin steht. hat jemand eine idee? gruss bernd :gruebel: |
Re: TXT Zerlegen ???
Dann lies die Datei Zeilenweise ein. Wenn Anführungszeichen drin stehen, übergibst du den Text dazwischen an die Listbox.
Oder verstehe ich das Problem nicht richtig? |
Re: TXT Zerlegen ???
Hallo,
nein du verstehst das schon richtig kannst du es mir an hand von diesem code zeigen.
Delphi-Quellcode:
gruss berndprocedure TForm1.Button1Click(Sender: TObject); var s,s2: String; p : integer; begin // zeilen loeschen memo1.lines.Delete(0); memo1.lines.Delete(0); memo1.lines.Delete(memo1.lines.Count-1); // zerschneiden s:= memo1.lines[0]; s:=copy(s,pos(' ',s)+1,length(s)); p:=pos(' ',s); s2:=copy(s,p+1,length(s)); p:=p+pos(' ',s2)-1; s:=copy(s,1,p); memo1.lines[0] := s; end; |
Re: TXT Zerlegen ???
Ich frage mich wirklich wie ihr es immer schafft aus solch komischen Konstrukten lesen zu wollen :lol:
|
Re: TXT Zerlegen ???
na wie geht es den richtig es gibt keine wirkliche hilfe die es richtig erklärt im netz.
gruss bernd |
Re: TXT Zerlegen ???
Zitat:
gruss bernd |
Re: TXT Zerlegen ???
Also ich würde deine Txt Datei in eine Stringlist einlesen und dann dort bearbeiten.
z.b. wenn der Name immer an der selben Position ist (Wenn bla bla immer gleich ist)
Delphi-Quellcode:
Auf diese Art kannst du alle Zeilen durchackern
function Tomds.LadeOmds(Pfad:String):boolean; //Lade Txt-Datei
begin MeineString_List:=TStringlist.Create; try MeineString_List.LoadFromFile(Pfad); except begin result:= false; ShowMessage('Fehler beim Laden der Datei'); exit; end; end; result:= true; end; function TOmds.OmdsCount():integer; //Anzahl Datensätze begin result:= MeineString_List.Count -1; end; function Tomds.GetFamName(x:Integer):String; //Get FamName begin result:= trim(copy(MeineString_List.Strings[x],71,30)); //x ist die aktuelle Zeile end; //die durch die func OmdsCount ermittelt wird |
Re: TXT Zerlegen ???
Hallo schuster,
Danke für deine hilfe :thumb: gruss bernd |
Re: TXT Zerlegen ???
wie rufe ich die Function auf?
bernd |
Re: TXT Zerlegen ???
So mach ich das:
Habe die Functionen in einen eigenen Unit und sind in einer Klasse die Tomds heist
Delphi-Quellcode:
var
MOmds : TOmds; implementation procedure TForm1.FormCreate(Sender: TObject); begin MOmds:= TOmds.Create; end; procedure TForm1.Button1Click(Sender: TObject); var x :integer; begin if MOmds.LadeOmds('C:\Programme\Borland\Delphi7\Projects\OMDS1.1\M1035390_20040407_023824_01.TXT')=true then begin x:= 2; while x <= MOmds.OmdsCount do begin StringGrid1.Cells[2,x-2]:= MOmds.GetFamName(x); end; end; end; |
Re: TXT Zerlegen ???
mit
Delphi-Quellcode:
kann delphi nix anfangenMeineString_List:=TStringlist.Create; gruss bernd |
Re: TXT Zerlegen ???
hast du in den Uses bereich: Classes drinnen??
|
Re: TXT Zerlegen ???
hab ich vergessen
bernd |
Re: TXT Zerlegen ???
Liste der Anhänge anzeigen (Anzahl: 1)
Hier mal meine beiden Units zum downloaden
|
Re: TXT Zerlegen ???
jetzt hat er ein problem mit
Delphi-Quellcode:
berndvar MOmds : TOmds; |
Re: TXT Zerlegen ???
Nicht vergessen du mußt das 2 Unit mit den funktionen ins erste mit einbinden!!
:-D
Delphi-Quellcode:
außer du hast die functionen ins Hauptunit implementiert.
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, StdCtrls,OMDSFunktionen; Dann brauchst du diese Variable nicht und kannst die functionen einfach so aufrufen:
Delphi-Quellcode:
GetFamName(x);
|
Re: TXT Zerlegen ???
hab alles so gemacht wird auch compiliert nur das der compy nicht mehr reagiert muss eventuell noch was in (Pfad) geschrieben werden .
gruss |
Re: TXT Zerlegen ???
Den Pfad übergibts du ja schon hier siehe auch schon weiter oben:
Delphi-Quellcode:
Pfad ==> C:\Programme\Borland\Delphi7\Projects\OMDS1.1\M103 5390_20040407_023824_01.TXT
if MOmds.LadeOmds('C:\Programme\Borland\Delphi7\Projects\OMDS1.1\M1035390_20040407_023824_01.TXT')=true then
begin x:= 2; while x <= MOmds.OmdsCount do begin StringGrid1.Cells[2,x-2]:= MOmds.GetFamName(x); end; end; |
Re: TXT Zerlegen ???
jetzt lässt es sich compilieren aber wie genau komme ich an den text ran den ich haben will aus der txt
bernd |
Re: TXT Zerlegen ???
In der Function
Delphi-Quellcode:
MeineString_List.Strings[x],71,30
function Tomds.GetFamName(x:Integer):String; //Get FamName
begin result:= trim(copy(MeineString_List.Strings[x],71,30)); //x ist die aktuelle Zeile end; 71 ist die Position wo der gewünschte Text beginnt 30 ist die Anzahl der gewünschten länge die Kopiert werden soll. Mußt du natürlich an deine Txt-Datei anpassen. |
Re: TXT Zerlegen ???
bei mir ist die länge der texte unterschiedlich lang kan man die länge nicht bestimmen lassen der text steht ja zwischen " text " den zeichen.
gruss |
Re: TXT Zerlegen ???
Da kannst du dir mit der function delimiter helfen.
Schau mal hier: ![]() Habe aber in meinem ersten Posten gesagt: Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:40 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