![]() |
Verzeichnisstruktur
Hallo Liebe Forenmitglieder. Ich habe ein riesiges Problem ich hoffe ihr könnt mir weiter helfen.
Ich sammle Leidenschaftlich gerne Briefmarken. Ich scanne diese ein und lege diese unter einem „mir logischen Pfad ab“. Das Problem ist : Wenn ich mal eben schnell ein Scan öffnen möchte, dauert das ewig bis ich bei der Datei angekommen bin. In Delphi habe ich eine VCL mit Textbox. Ich möchte gerne das wenn man die Datei Nummer eingibt Automatisch sich der Scan mit Irfan View öffnet ist das möglich? G:\PICS\9\R\22\3 9R223000L5.jpg oder 9R223000L5-55.jpg Gibt es eine logische Programmierung. Meine Logik reicht dafür nicht aus!:shock: Ich danke euch für eure Hilfe |
AW: Verzeichnisstruktur
Was ist denn die Dateinummer?
|
AW: Verzeichnisstruktur
Ich denke er meint den Dateinamen?!
Das Problem für uns ist hier, dass wir deine Logik näher erklärt haben müssten, um dir konkret helfen zu können. Beschreibe doch einfach mal ein Beispiel. |
AW: Verzeichnisstruktur
Zitat:
![]() ![]() ![]()
Delphi-Quellcode:
var
tmp: String; input: String; path: String; begin path := 'G:\PICS\'; input := Edit1.Text; // 1. Zeichen ermitteln tmp := Copy(input, 1, 1); path := path + tmp + '\'; // path ist jetzt G:\PICS\9\ // und so weiter bis du den vollständigen Pfad + Dateinamen hast // Öffnen kannst du die Datei dann mit ShellExecute end; |
AW: Verzeichnisstruktur
WOW, ich muss das mal heute abend ausprobieren! Vielen herzlichen Dank! :-D
:shock: |
AW: Verzeichnisstruktur
Auf sowas würde ich reguläre Ausdrücke los lassen. Auf ein paar Millisekunden hin oder her kommt es hier ja eh nicht darauf an.
|
AW: Verzeichnisstruktur
Ja die sind immer gleichlang!
|
AW: Verzeichnisstruktur
Ich habe den Zusammenhang immer noch nicht verstanden :gruebel:. Soll da ein Dateiname eingegeben und daraus der Pfad ermittelt werden oder andersherum oder wie?
|
AW: Verzeichnisstruktur
Ja, Der Dateiname wird eingegeben ....zerlegt....und die Datei öffnet sich.....:shock:
|
AW: Verzeichnisstruktur
Dann ginge ja auch Insert(), man muss nur daran denken, dass sich danach der Index jeweils um 1 verschiebt.
[edit] Passt das so?
Delphi-Quellcode:
[/edit]
function GetDirFromFilename(Filename, IncludingDir: string;
BackslashPositions: array of integer): string; var i, RealPosition: integer; begin RealPosition := 0; for i := Low(BackslashPositions) to High(BackslashPositions) do begin Insert('\', Filename, BackslashPositions[i] + RealPosition); inc(RealPosition); end; Result := IncludeTrailingPathDelimiter(IncludingDir) + Filename; end; procedure TForm1.Button1Click(Sender: TObject); begin ShowMessage(GetDirFromFilename('9R223000L5.jpg', 'G:\PICS', [2,3,5,6])) end; |
AW: Verzeichnisstruktur
Liste der Anhänge anzeigen (Anzahl: 1)
Wie meinst Du das? Ich kenne das nicht:shock:
Ich habe mal ein Screenshot von der Struktur gemacht! |
AW: Verzeichnisstruktur
Also wohl eher so:
Delphi-Quellcode:
function GetDirFromFilename(const Filename, IncludingDir: string;
BackslashPositions: array of integer): string; var i, RealPosition: integer; SubDir: string; begin RealPosition := 0; SubDir := Filename; for i := Low(BackslashPositions) to High(BackslashPositions) do begin Insert('\', SubDir, BackslashPositions[i] + RealPosition); inc(RealPosition); end; SubDir := ExtractFilePath(IncludeTrailingPathDelimiter(IncludingDir) + SubDir); Result := SubDir + Filename; end; procedure TForm1.Button1Click(Sender: TObject); begin ShowMessage(GetDirFromFilename('9R223000L5.jpg', 'G:\PICS', [2,3,5,6])) end; |
AW: Verzeichnisstruktur
Das ist es! Super Genial Ich werde das mal heute abend ausprobieren. Nur ist mir nicht klar wie ich das jetzt mit IrfanView direkt öffnen kann.:shock:
|
AW: Verzeichnisstruktur
Zitat:
Grüße, Max |
AW: Verzeichnisstruktur
So? :shock:
Delphi-Quellcode:
Ich habs mit Edit1.Text gemacht zur direkten eingabe!
ShellExecute(0,'open','i_view32.exe',Pchar (edit1.Text),'C:\Software\irfanview\',SW_SHOW)
|
AW: Verzeichnisstruktur
Versuch mal
Delphi-Quellcode:
ShellExecute(0,
'open', 'C:\Software\irfanview\i_view32.exe', Pchar(GetDirFromFilename(edit1.Text, 'G:\PICS', [2,3,5,6])), nil, SW_SHOW) |
AW: Verzeichnisstruktur
Hi! ich bin gerade eben nach hause gekommen und habs ausprobiert alles funktioniert wunderbar....echt geil! Vielen herzlichen Dank!
nur eine Fehlerroutine funktioniert nicht. Wird hier komplizierter? :shock: |
AW: Verzeichnisstruktur
Wie meinen?
|
AW: Verzeichnisstruktur
Sorry!:-D
Das Bild öffnet nur wenn es vorhanden ist...wenn nicht kommt eine Fehlermeldung!.... |
AW: Verzeichnisstruktur
Dann musst Du vorher prüfen, ob es die Datei auch gibt (FileExists).
|
AW: Verzeichnisstruktur
ahh. Meinst Du so?
Delphi-Quellcode:
begin
if FileExists(Pchar(GetDirFromFilename(edit1.Text+'.jpg', 'G:\PICS', [2,3,5,6]))) then ShellExecute(0, 'open', 'C:\Program Files\IrfanView\i_view32.exe', Pchar(GetDirFromFilename(edit1.Text+'.jpg', 'G:\PICS', [2,3,5,6])), nil, SW_SHOW) //end; else ShowMessage('Nicht gefunden!') end; end. |
AW: Verzeichnisstruktur
Jepp, obwohl ich da dann lieber eine Zwischenvariable nutzen würde, damit die Funktion nicht mehrfach durchlaufen werden muss.
Delphi-Quellcode:
begin
Datei := GetDirFromFilename(edit1.Text+'.jpg', 'G:\PICS', [2,3,5,6]); if FileExists(Datei) then ShellExecute(0, 'open', 'C:\Program Files\IrfanView\i_view32.exe', Pchar(Datei), nil, SW_SHOW) //end; else ShowMessage('Nicht gefunden!') end; end. |
AW: Verzeichnisstruktur
Vielen, vielen Dank! :-D
|
AW: Verzeichnisstruktur
Keine Ursache :)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:55 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