AGB  ·  Datenschutz  ·  Impressum  







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

Datei nummeriert speichern

Ein Thema von Dragon27 · begonnen am 25. Feb 2004 · letzter Beitrag vom 1. Mär 2004
Antwort Antwort
Seite 1 von 2  1 2      
Dragon27

Registriert seit: 20. Nov 2003
Ort: Aßling
543 Beiträge
 
Delphi XE6 Enterprise
 
#1

Datei nummeriert speichern

  Alt 25. Feb 2004, 09:54
Hallo,

als ich benutze das Synedit. Ich weiß dess es nummeriert aber es soll folgendermaßeb sein:

Die dateien sehen so aus:

1 dfgsdf
2 dfasdfa
3 dfasdfsadf
4 fasdfasdfadsf
5 etc.

die nummern sollen beim laden entfernt werden, ich habe dazu folgendes gemacht:
Delphi-Quellcode:
// Proceduren für das auseinandernehmen eines Strings

procedure GetWords(TheString, Separator: String; var Strings: TStringList);
begin
  try
    Strings.Clear;
    while Pos(Separator, TheString)>0 do
    begin
      Strings.Add(Copy(TheString, 1, Pos(Separator, TheString)-1));
      TheString:=Copy(TheString, Pos(Separator, TheString)+Length(Separator),
      Length(TheString));
    end;
    Strings.Add(TheString);
  except
  end;
end;

function WordCount(TheString, Separator: String): Integer;
var OurStrings: TStringList;
begin
  OurStrings:=TStringList.Create;
  GetWords(TheString, Separator, OurStrings);
  result:=OurStrings.count;
  OurStrings.free;
end;



function GetWord(TheString, Separator: String; Nummer: Integer): String;
var OurStrings: TStringList;
begin
  OurStrings:=TStringList.Create;
  GetWords(TheString, Separator, OurStrings);
  try
    result:=OurStrings[Nummer-1];
  except
    result:=''
  end;
  OurStrings.free;
end;

// richtiger Text

zahl:=-1;
 while zahl+2<=synmemo1.Lines.Count do begin
 zahl:=zahl+1;
 form1.synmemo1.Lines.Add(getword(synmemo1.Lines.Strings[zahl],' ',2));
 ladenP.Position:=zahl;
 end;
Also ihr verteht ich mach da jede Zeile einzeln durch und des dauert hald ungemein lange wisst ihr wie mann dabei Zeit sparen kann? Oder eine ander Möglichkeit?

Danke
Delphi is ......... DELPHI!!
  Mit Zitat antworten Zitat
lorenz

Registriert seit: 7. Nov 2003
86 Beiträge
 
Delphi 7 Personal
 
#2

Re: Datei nummeriert speichern

  Alt 25. Feb 2004, 10:02
Hallo Dragon27,

warum müssen denn die Dateien nummeriert gespeichert werden?

MfG

Lorenz
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#3

Re: Datei nummeriert speichern

  Alt 25. Feb 2004, 10:14
Erstens:
So sollte es aussehen, wenn man dynamisch Objekte erzeugt und freigibt.
Delphi-Quellcode:
  XXX.Create;
  Try
    ...
  Finally
    FreeAndNil(XXX);
  End;
Das hier dürfte doch reichen, um von allen Zeilen die ersten zwei Stellen abzuschneiden (ungetestet!):

Delphi-Quellcode:
Var
  flStrList : TStringList;
  DeinFileName : String;
  Zahl : Integer;
  ...
Begin
  ...
  flStrList := TStringList.Create;

  Try
    flStrList.LoadFromFile(DeinFileName);
    Zahl := 0;
    While zahl < pred(flStrList.Count) Do
    Begin
      // ladenP.Position := zahl;
      flStrList[Zahl] := Copy(flStrList[Zahl], 3, Length(flStrList[Zahl]));
      inc(Zahl);
    End;
    Form1.SynMemo1.Lines.Assign(flStrList);
  Finally
    FreeAndNil(flStrList);
  End;
Nachtrag: @lorenz
Ich glaube er hat die Nummern in der Datei und will sie nicht mehr im SynMemo haben.

Edit: schnell hingehackt und voller Bugs -> korrigiert
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

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

Re: Datei nummeriert speichern

  Alt 25. Feb 2004, 10:16
Aber es sind ja nicht immer nur 2 Stellen, die wegkommen, da müsste man evtl. noch mit pos die erste Leerstelle herausfinden.
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#5

Re: Datei nummeriert speichern

  Alt 25. Feb 2004, 10:20
natürlich...
Ist ja auch noch mitten in der Nacht
  Mit Zitat antworten Zitat
Dragon27

Registriert seit: 20. Nov 2003
Ort: Aßling
543 Beiträge
 
Delphi XE6 Enterprise
 
#6

Re: Datei nummeriert speichern

  Alt 25. Feb 2004, 10:30
hallo,

also zu eurer Info, es geht hier um die Heidenhein-Programmiersprache mit der werden CNC-maschinen programmiert und zum editieren sollen natürlich die Zeilennummern nicht angezeigt werden aber nachher in der gespeicherten Datei schon wieder. Da die Maschine das für eine GOTO funktion benötigt.

Habt ihr da echt keine schnelle Lösung habe da ein DOS-Programm und da geht das wie aus der Pistole geschossen oder ist am Ende Delphi schlechter wie manches DOS programm? *g*

Danke für eure Antworten
Delphi is ......... DELPHI!!
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#7

Re: Datei nummeriert speichern

  Alt 25. Feb 2004, 10:50
Der Code hat gerade 15.000 Zeile in unter 1 Sek. eingelesen (und das auf einer AMD Möhre!)
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#8

Re: Datei nummeriert speichern

  Alt 25. Feb 2004, 10:55
Und damit klappt's auch mit dem Nachbarn:
Delphi-Quellcode:
Var
  flStrList : TStringList;
  DeinFileName : String;
  Zahl, StartPos : Integer;
Begin
  If Not opendialog1.Execute Then Exit;
  DeinFileName := OpenDialog1.FileName;

  flStrList := TStringList.Create;

  Try
    flStrList.LoadFromFile(DeinFileName);
    Zahl := 0;
    While Zahl < pred(flStrList.Count) Do
    Begin
      // ladenP.Position := zahl;
      StartPos := Pos(#32, flStrList[Zahl]);
      inc(StartPOs);
      flStrList[Zahl] := Copy(flStrList[Zahl], StartPos, Length(flStrList[Zahl]));
      inc(Zahl);

    End;
    SynMemo1.Lines.Assign(flStrList);
  Finally
    FreeAndNil(flStrList);
  End;
  Mit Zitat antworten Zitat
Dragon27

Registriert seit: 20. Nov 2003
Ort: Aßling
543 Beiträge
 
Delphi XE6 Enterprise
 
#9

Re: Datei nummeriert speichern

  Alt 25. Feb 2004, 10:55
hallo Robert,

da geht es nicht um 15000 Zeile sondern um runde 2,5 Mio. Zeile weil dieser Text von AutoCAD kommt trotzdem probiere ich es nochmal danke für dein posting!
Delphi is ......... DELPHI!!
  Mit Zitat antworten Zitat
Dragon27

Registriert seit: 20. Nov 2003
Ort: Aßling
543 Beiträge
 
Delphi XE6 Enterprise
 
#10

Re: Datei nummeriert speichern

  Alt 25. Feb 2004, 11:01
hallo Robert,


also hab des nochmal probiert funktioniert wunderbar!!!
Wirklich toll danke!
Aber ich kenn mich da net ganz so aus also fällt mir des schwer das ganze wieder mit nummern zu speichern kannst du mir da nochmal helfen?

Danke
Delphi is ......... DELPHI!!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 03:20 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