File umbenennen

Mororu

Mitglied
Hallo zusammen

Benötige dringend Hilfe. Mein Problem: Ich habe 2 TXT Files. In einem dieser Files steht eine Zahl. Ich möchte nun diese Zahl Herauslesen und die Files mit dieser Nummer umbenennen.

Muster

Filename + Nr.txt
 
Hallo,

ich weiß nicht ob es nur mir so geht, aber ich hätte doch mal zwei Fragen...

1) Was hast du genau vor, ich bin mir nicht sicher ob ich das richtig verstanden habe.

2) Wo genau liegt dein Problem, also was möchtest du konkret wissen?

Gruss
 
Also ich habe 2 .txt Files. Eines heisst Lieferschein.txt und das andere heisst bestellfile.txt. Nun steht im File Lieferschein.txt in der 3. Zeile: Lieferschein 465

Nun möchte ich diese Nummer hinter Lieferschein auslesen und Beide Files so umbenennen:

Lieferschein465.txt und Bestellfile465.txt

Ich hoffe es ist nun ein bisschen klarer.
 
Was hast du denn bisher schon gemacht? Oder fehlt dir komplett der Ansatz?

Textfile öffnen
lesen bis die entsprechende Stelle gefunden wird
Zahl in Variable schreiben
Dateien mit der entsprechenden Delphi-Funktion umbenennen oder verscheiben o. ä.

Für Hilfe beim Code einfach wieder melden...
 
Das grösste Problem ist, lesen bis zu dieser Zeile die, die Information enthält. Textfile öffnen und auslesen ist nicht das Problem.
 
Habe Problem mit einem Memo Feld gelöst:

procedure TForm1.DateiRename;
var
index : integer;
ii : integer;
s: string;
begin
index := 0;
ii := 0;
Memo1.Lines.Clear;
Memo1.Lines.LoadFromFile('c:\Test\LIEFSCH.LST');

repeat
inc(ii);
Edit1.Text := Memo1.Lines.Strings[index];
inc(index);

if pos('LIEFERSCHEIN',Edit1.Text)>0 then begin
s := Edit1.Text;
s := copy(s,32,3);
RenameFile('c:\Test\LIEFSCH.LST', 'c:\Test\LIEFSCH' + s + '.LST');
RenameFile('c:\Test\BESTFIL.OUT', 'c:\Test\BESTFIL' + s + '.OUT');
end;
until ii >= memo1.Lines.Count;
end;

Wenn jemand noch eine Lösung hat, ohne ein Memofeld zu benutzen würde ich sie gerne erfahren.
 
Hi,

hab mal schnell was gebastelt, das sollte für deine Zwecke funktionieren... So brauchst du auf jeden Fall kein Memo mehr. Allerdings darf ohne weitere Sicherung auch kein zweites Mal "LIEFERSCHEIN" in einer Datei stehen, dann gäbe es Chaos...

Code:
procedure TForm1.DateiRename;
var
  s: string;
  number: String;
  tfile: textfile;
begin
  index := 0;
  ii := 0;
  Assignfile(tfile, 'c:\Test\LIEFSCH.LST');
  Reset(tfile);
  while not EOF(tfile) do
  begin
    ReadLn(tfile, s);
    if pos('LIEFERSCHEIN',s) > 0 then
    begin
      number := copy(s,32,3);
    end;
  end;
  CloseFile(tfile);
  RenameFile('c:\Test\LIEFSCH.LST', 'c:\Test\LIEFSCH' + Number + '.LST');
  RenameFile('c:\Test\BESTFIL.OUT', 'c:\Test\BESTFIL' + Number + '.OUT');
end;
 

Neue Beiträge

Zurück