AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Nummer der Datei um 1 erhöhen
Thema durchsuchen
Ansicht
Themen-Optionen

Nummer der Datei um 1 erhöhen

Ein Thema von AnfängerDelphi · begonnen am 2. Apr 2013 · letzter Beitrag vom 4. Jul 2013
 
Perlsau
(Gast)

n/a Beiträge
 
#5

AW: Nummer der Datei um 1 erhöhen

  Alt 3. Apr 2013, 06:49
Es soll immer eine Datei mit fortlaufender Nummer erstellt werden,aber vorher zuerst prüfen,ob Datei schon vorhanden ist.
Es gibt hier grundsätzlich zwei Vorgehensweisen:

1. Im entsprechenden Ordner die Datei mit der höchsten Nummer suchen

1a. Wie häufig wird die Datei geschrieben?
1b. Feste Anzahl vorangestellter Nullen erleichtert die Übersicht
1c. Dateiliste des Ordners holen und in Stringlist sortieren
1d. Nummerierung am Anfang des Dateinamens statt am Ende erleichtert das Extrahieren des Teilstrings, der die Nummer enthält
1e. Extrahieren des Dateinamens: DateiName := ExtractFileName(Datei); 1f. Angenommen, du verwendest 10 Zeichen für die Nummer, dann erhältst du die Nummer so: MeineNummer := StrToInt(Copy(DateiName,1,10)); Bist du nicht sicher, daß sich im kopierten Teilstring eine Zahl befindet, dann verwende SysUtils.TryStrToInt.
1g. Nummer in der Integer-Variablen MeineNummer um 1 erhöhen.
1h. Datei mit dem neuen Nummernwert schreiben.

2. Eine globale Integer- oder LongInt-Variable für die Nummerierung einsetzen

Diese Globale Variable MeineNummer setzt du anstatt des X in deiner Procedure ein und erhöhst sie bei jedem Procedure-Aufruf. Die erste Vorgehensweise ist jedoch sicherer, da du dich hierbei exakt an die physikalischen Gegebenheiten (durchnummerierte Dateien auf der Platte richtest). Sollte einmal ein Schreibvorgang schiefgehen oder abgebrochen werden, weist deine Nummerierung bei der zweiten Vorgehensweise u.U. Lücken auf.

Ansonsten: Grundlagen lernen. So wird z.B., wie bereits von Uwe erwähnt, der Befehle, x um eins zu erhöhen – kann man übrigens auch als Inc(x) schreiben – nach dem else zwar ausgeführt, wenn die Else-Bedingung zutrifft, die danach folgenden Befehle aber immer, da sie nicht mehr zum Else-Block gehören, was du jedoch eigentlich wolltest. Daher gehört alles, was nach Else ausgeführt werden soll, ebenso in Begin-End eingeschlossen wie alles, was nach dem Then ausgeführt werden soll.

Geändert von Perlsau ( 3. Apr 2013 um 09:37 Uhr)
  Mit Zitat antworten Zitat
 


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 01:06 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