AGB  ·  Datenschutz  ·  Impressum  







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

Versionsnamen wechseln

Ein Thema von Dunkelbunt27 · begonnen am 25. Apr 2011 · letzter Beitrag vom 25. Apr 2011
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Dunkelbunt27
Dunkelbunt27

Registriert seit: 10. Aug 2010
232 Beiträge
 
Delphi XE Professional
 
#1

Versionsnamen wechseln

  Alt 25. Apr 2011, 16:36
Hallo Leute,

die erste gespeicherte Datei soll Datei_v1.csv heißen.
Beim normalen Speichern soll die Datei überschrieben werden (ist kein Problem).
Schließt man das Programm und öffnet diese Datei dann erneut, soll die Datei beim Speichern nicht überschrieben werden, sondern es soll (im gleichen Verzeichnis) die Datei_v2.csv erstellt werden.
usw.

Bsp:
Name: Übungstext
Gespeicherte Datei: Übungstext_v1.csv

<Programm geschlossen und neu geöffnet (z.B. an neuem Tag)>


Name: Übungstext (NICHT Übungstext_v1.csv)
Gespeicherte Datei: Übungstext_v2.csv

Hat jemand eine Idee wie man das realisieren könnte?

FG Dunkelbunt
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#2

AW: Versionsnamen wechseln

  Alt 25. Apr 2011, 16:42
Was genau ist das Problem? Die Versionsnummer auszutauschen oder zu erkennen, ob das Programm neu gestartet wurde?
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Benutzerbild von Dunkelbunt27
Dunkelbunt27

Registriert seit: 10. Aug 2010
232 Beiträge
 
Delphi XE Professional
 
#3

AW: Versionsnamen wechseln

  Alt 25. Apr 2011, 16:44
Die Versionnummer zu tauschen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#4

AW: Versionsnamen wechseln

  Alt 25. Apr 2011, 16:44
Bei Programmstart wird geschaut was die letzte Datei ist und entsprechend ein neuer Dateiname generiert.
Wärend das Programm läuft wird dann immer dieser Name zum Speichern genutzt.

Zitat:
Die Versionnummer zu tauschen.
Dateiname := 'Übungstext_v%d.csv'; .
zusammen mit Delphi-Referenz durchsuchenFormat und einer bei 1 beginnenden Schleifenvariable kann man nun in einer Schleife prüfen ob die Datei schon existiert.
Wenn ja, dann Hochzählen und weiterprüfen.
Wenn nicht, dann hast du deinen Dateinamen.
$2B or not $2B

Geändert von himitsu (25. Apr 2011 um 16:47 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#5

AW: Versionsnamen wechseln

  Alt 25. Apr 2011, 16:45
Am geeignesten wäre wohl eine .ini Datei, in der du das Prefix ablegst, z.b. "Übungstext" und die aktuelle Versionsnummer. Beim Programmstart lädst du das Prefix und die Versionsnummer, wobei du letztere inkrementierst und den neuen Wert in die .ini zurückschreibst. Zum Speichern hängst du das Prefix und die Versionsnummer aneinander und speicherst unter diesem Namen. Diese Methode überschreibt während einer "Session" die aktuelle Datei, benutzt aber beim nächsten Start eine erhöhte Versionsnummer.

Delphi-Quellcode:
// Programmstart

var
  Ini: TIniFile;
begin
  Ini := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'Settings.ini');
  try
    MyPrefix := Ini.ReadString('File', 'Prefix', 'Default');
    MyVersion := Inc(Ini.ReadInteger('File', 'Version', 0));
    Ini.WriteInteger('File', 'Version', MyVersion);
  finally
    Ini.Free;
  end;
end;

// Speichern
MyStringList.SaveToFile(ExtractFilePath(ParamStr(0) + MyPrefix + IntToStr(MyVersion) + '.csv'));
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)

Geändert von Zacherl (25. Apr 2011 um 16:50 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Dunkelbunt27
Dunkelbunt27

Registriert seit: 10. Aug 2010
232 Beiträge
 
Delphi XE Professional
 
#6

AW: Versionsnamen wechseln

  Alt 25. Apr 2011, 16:47
Also, die Versionsnummer speichere ich immer mit. Ich könnte auch den Dateinamen und Versionsnummer speichern, doch wenn der User nachträglich die Datei umbenennt dann gibts doch sicher Probleme, oder?

Edit:
@ himitsu
Das könnte gehen, ich schau mal.
@ Zacherl
Danke für das Ini-File, ich versuch erstmal ohne zusätzliche Datei klar zu kommen.

Geändert von Dunkelbunt27 (25. Apr 2011 um 16:51 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#7

AW: Versionsnamen wechseln

  Alt 25. Apr 2011, 16:52
Wenn der User den Dateinamen nachträglich per Hand ändert, gibt es sowohl bei meiner, als auch bei himitsu Methode Probleme. Aber normalerweise sollte kein Anwender sowas machen. Ich meine ich bennene ja auch nicht mal eben explorer.exe um und erwarte, dass alles noch funktioniert

Kannst ja eine Umbenennen Funktion in dein Programm mit einbauen, die alles regelt.

Edit:
Danke für das Ini-File, ich versuch erstmal ohne zusätzliche Datei klar zu kommen.
Die Ini war auch nur ein Beispiel. Du meintest ja, dass du die Versionsnummer sowieso speicherst. Dann kannst du sie natürlich auch aus deiner Config laden und entsprechend beim Programmstart inkrementieren und zurückspeichern.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Benutzerbild von Dunkelbunt27
Dunkelbunt27

Registriert seit: 10. Aug 2010
232 Beiträge
 
Delphi XE Professional
 
#8

AW: Versionsnamen wechseln

  Alt 25. Apr 2011, 16:55
Naja,
bei meinem Programm handelt es sich um Dateien, die man öfter bearbeitet und durchaus umbenennen kann, wie eine Worddatei umbenannt wird...

Das ist das Problem...
Dann nehmen wir mal an jemand ändert den Namen nicht.
Wäre das mit Format dann nicht der kürzeste Weg?

Geändert von Dunkelbunt27 (25. Apr 2011 um 17:38 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Dunkelbunt27
Dunkelbunt27

Registriert seit: 10. Aug 2010
232 Beiträge
 
Delphi XE Professional
 
#9

AW: Versionsnamen wechseln

  Alt 25. Apr 2011, 17:38
@himitsu's Vorschlag
Wenn die letzte Datei Übung_v1.csv heißt und man sie läd und dann folgendes anwendet:
Delphi-Quellcode:
Dateiname := Übung_v1.csv;
NeuerName := Format(Dateiname+'_v%d.csv',[i]);
Dann kommt doch nicht Übung_v2.csv raus, oder?

Kann man nicht mit Pos(string) die Stelle vom '_v' im String ermitteln und das und nachfolgende mit delete(string) löschen?
Dann hätte man den Dateinamen ohne '_v1'.

Geändert von Dunkelbunt27 (25. Apr 2011 um 18:16 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#10

AW: Versionsnamen wechseln

  Alt 25. Apr 2011, 17:58
Dort werden fortlaufend nummerierte Dateinamen erstellt.
http://www.delphipraxis.net/111851-t...-loeschen.html
http://www.delphipraxis.net/65701-ge...e-fileext.html
$2B or not $2B
  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 00:00 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