![]() |
Dateien nummeriert speichern?
Moin,
Das Speichern einer Datei mit oder ohne Save Dialog ist eigentlich kein Thema. Nun stehe ich aber vor dem Problem, Dateien mit fortlaufender Nummer (zb. Daten01.txt, Daten02.txt usw.) zu speichern. Vorher sollte aber die letzte laufende Nummer geeprüft werden, um logischer Weise um eine Stelle zu erhöhen. Wie könnte man vorgehen? Danke. |
Re: Dateien nummeriert speichern?
hallo, hab da mal für ne firmensoftware das gleiche problem gehabt.
ich hab das ganze in eine schleife gepackt, etwa so:
Delphi-Quellcode:
die funktion gibt also aus, welche datei mit index i noch nicht existiert - allerdings wird hierbei statt 01, 02, also alle zahlen < 10 nur 1, 2... erkannt!begin result := 1; while fileexists('datei' + IntToStr(result) + '.txt') do Inc(result); end; mfg, heiopei //edit: sorry i und result vermischt ;-) |
Re: Dateien nummeriert speichern?
Eigentlich ist es völlig egal, ob es mit einer 0 angeführt wird, oder nicht.
|
Re: Dateien nummeriert speichern?
Statt IntToStr kann man ja auch mal Format verwenden, da läßt sich dann auch 01, 02... realisieren.
Oder für 00 bis 99, kann man auch selber was zusammenstellen:
Delphi-Quellcode:
und Efektiver geht's so (is sogar "besser" als Format)
'datei' + IntToStr(i div 10) + IntToStr(i mod 10) + '.txt'
Delphi-Quellcode:
'datei' + Chr(i div 10 + 48) + Chr(i mod 10 + 48) + '.txt'
[add] Na wenn's egal ist, dann halt nur IntToStr(i), wie bereits gesagt -.-'' |
Re: Dateien nummeriert speichern?
Alles klar. Danke.
|
Re: Dateien nummeriert speichern?
Hallo Mario,
einen Ansatz hätte ich noch:
Delphi-Quellcode:
Wenn die Dateien fortlaufend und lückenlos nummeriert sind, dann liefert dir CountFiles('Daten*.txt') die letzte vergebene Dateinummer im Arbeitsverzeichnis.
// uses QFileCtrls;
function CountFiles(filespec: string): integer; var d: TDirectory; begin d := TDirectory.Create(nil); d.BeginUpdate; d.FileMask := ExtractFileName(fileSpec); d.Location := ExtractFilePath(fileSpec); d.FileType := [ftArchive]; d.EndUpdate; Result := d.Count; d.Free; end; Grüße vom marabu |
Re: Dateien nummeriert speichern?
Zitat:
ich muss i also erst noch als was definieren, aber als was? :gruebel: zebrafalke |
Re: Dateien nummeriert speichern?
Klar musst du i erst noch definieren.
Als was ? Integer oder Word wäre angebracht.
Delphi-Quellcode:
var i: Integer;
|
Re: Dateien nummeriert speichern?
i ist IMMER eine Integer-Variable, zumindest nennt jeder seine Integervariablen i. Wenn die Variable dann auch noch in einer for-Schleife vorkommt gibt es ja gar keine andere Möglichkeit mehr als dass i eine Integervariable ist.
|
Re: Dateien nummeriert speichern?
Zitat:
PS: das IMMER solltest'e lieber klein schreiben ... klar nennen viele ihre Schleifen-, oder sonstigen variablen i, i2, i3, oder wie auch immer, dennoch MUß es nicht ein Integer sein ;) Und in 'ner For-Schleife kannst du auch andere ordinale Datentypen verwenden :zwinker: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:15 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 by Thomas Breitkreuz