Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Registry - Datei umbenennen (https://www.delphipraxis.net/15947-registry-datei-umbenennen.html)

Computerbabalulu 7. Feb 2004 12:42


Registry - Datei umbenennen
 
Hallo zusammen

Im Anhang findet ihr einen Registry Eintrag den ein Bildbearbeitungsprogramm macht.
Keine Angst, könnt ihr ruhig eurer Registrierung hinzufügen. Kann einfach wieder gelöscht werden.
Hierdurch wird jetzt in der Registrierung folgender Eintrag erstellt:


[HKEY_CURRENT_USER\Software\ES\PVD]
"Suchpfad0"="E:\\Digital\\Batch\\10"
"Suchpfad1"=""
"Suchpfad2"=""
"Suchpfad3"=""
"Suchpfad4"=""
"Suchpfad5"=""
"Suchpfad6"=""
"Suchpfad7"=""
"Suchpfad8"=""
"Suchpfad9"=""
"PoB-Job 0"="00002_000001«»040207006000999999.pob"
"PoB-Job 1"=""
"PoB-Job 2"=""
"PoB-Job 3"=""
"PoB-Job 4"=""
"PoB-Job 5"=""
"PoB-Job 6"=""
"PoB-Job 7"=""
"PoB-Job 8"=""
"PoB-Job 9"=""

Unter „PoB-Job 0-9“ findet das Bildbearbeitungsprogramm den als nächsten abzuarbeitenden Dateinamen.
Unter „Suchpfad 0-9“ das entsprechende Verzeichnis wo die Datei gespeichert ist.
Der Zusammenhang „PoB-Job“ und Suchpfad sollte klar sein. Alles was unter „Pob-Job 0“ steht findet das Programm im Verzeichnis „Suchpfad0“ usw.
Bei der Datei die das Bildbearbeitungsprogramm gerade in arbeit hat, wird im Verzeichnis die Datei-Endung von „*.pob“ auf „*.ina“ (in arbeit)geändert.

Genau hier liegt mein Problem. Bei dem Bildbearbeitungsprogramm kommt es vor, das es mitten in der Bearbeitung einer Datei hängen bleibt. Dann muss es neu gestartet werden. Das habe ich mit Hilfe eines kleinen Delphi Programms automatisiert. Allerdings fängt nun das Bildbearbeitungsprogramm nicht von alleine wieder an zu rechnen, weil die im „Pob-Job“ angegebene Datei ja im Verzeichnis nicht mehr „*.pob“ sondern „*.ina“ heißt.

Ich brauche jetzt eine Prozedur, die bei Aufruf alle Dateien die unter „Pob-Job 0-9“ stehen, in dem entsprechenden „Suchpfad 0-9“ wieder von „*.ina“ nach „*.pob“ umbenennen.

Betriebssystem ist Windows 2000/XP.

Ich hoffe ich konnte mein Problem einigermaßen verständlich erklären.

Gruß Frank

chris 7. Feb 2004 13:48

Re: Registry - Datei umbenennen
 
hi,

in etwa so

Delphi-Quellcode:
var
  reg: tregistry;
  i: byte;
  tempstr: string;
begin
  reg := tregistry.create;
  try
    with reg do
      begin
        RootKey := HKEY_CURRENT_USER;
        if OpenKey('Software\ES\PVD', False) then
          for i := 0 to 9 do
            begin
              if (ValueExists('PoB-Job ' + i)) and not (length(trim(ReadString('PoB-Job ' + i))) = 0) then
                begin
                  tempstr := ReadString('PoB-Job ' + i);
                  if fileexists(changefileext(tempstr, '.ina')) then
                    renamefile(changefileext(tempstr, '.ina'), tempstr)
                end
            end
      end
  finally
    reg.closekey
    reg.free
  end
wobei ich nicht verstehe warum du das nicht einfach nur mit changefileext() machst.

du brauchst doch einfach nur zu gucken ob es in dem suchpfad ein file gibt das anstelle der .pob extension eine *.ina extension hat.

[edit]
habe die proz nochmal umgeschrieben
allerdings musst du dich selber um den pfad kümmern
habe es nur schnell für die dateinamen gemacht
[/edit]
hih

Computerbabalulu 7. Feb 2004 13:53

Re: Registry - Datei umbenennen
 
Hi Chris

Erst mal Danke...

Das Bildbearbeitungsprogramm läuft auf mehreren Rechnern die alle ihre Daten aus den selben 10 Verzeichnissen holen. Das heißt es können auch "*.ina" da sein die nicht falsch sind sonder wirklich gerade noch in arbeit sind.


Gruß Frank


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:50 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