Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Memo Load from File - Leerzeichen im Pfad! (https://www.delphipraxis.net/170004-memo-load-file-leerzeichen-im-pfad.html)

TRUCKERmas 24. Aug 2012 22:52

Delphi-Version: 7

Memo Load from File - Leerzeichen im Pfad!
 
Ich versuche ne Datei in nem Pfad zu laden, jedoch passiert folgendes:
(Der Pfad beinhaltet mehrere Leerzeichen)


Ohne hochkommata:
Das System kann den angegebenen Pfad nicht finden
Pfad ist korrekt angegeben in der Fehlermeldung
Mit Hochkommata:
Das System kann den angegebenen Pfad nicht finden, jedoch
sucht er nicht beim Pfad sondern bei
PfadDerExe (mit Hochkommata) + '"' + MeinPfad + '"' (+ '"' Hochkommata vom Pfad der Exe)

Kennt jemand eine Lösung zu dem Problem?
Ich muss die Datei im Memo öffnen um nach bestimmten Zeilen zu suchen und diese zu ändern.

Lemmy 24. Aug 2012 23:01

AW: Memo Load from File - Leerzeichen im Pfad!
 
Hi

Delphi-Quellcode:
Memo1.Lines.LoadFromFile(aFileName);
wenn in aFileName der korrekte Dateiname steht, egal ob mit oder ohne Hochkomma, dann läd er die Daten.

Kannst Du mal etwas Code zeigen?

TRUCKERmas 24. Aug 2012 23:05

AW: Memo Load from File - Leerzeichen im Pfad!
 
Delphi-Quellcode:
path:='C:\bla\bla bla\falsch';
ExpandFileName(path + '\..');
path:=path+'bla bla bla\';
Memo1.Lines.LoadFromFile(path+'datei.text');
// Somit müsster er C:\bla\bla bla\bla bla bla\datei.text öffnen wollen

Lemmy 24. Aug 2012 23:09

AW: Memo Load from File - Leerzeichen im Pfad!
 
Schön.. Würdest Du bitte mal debuggen und schauen was er dann wirklich macht? Sprich was in Path steht, wenn LoadFile aufgerufen wird?

TRUCKERmas 24. Aug 2012 23:11

AW: Memo Load from File - Leerzeichen im Pfad!
 
Habe gerade nachgeschaut!
ExpandFileName(path + '..'); funktioniert nicht, er geht
nicht in die Parent directory (einen Ordner hoch).

Kennt jemand einen anderen Weg das zu erreichen?

himitsu 24. Aug 2012 23:15

AW: Memo Load from File - Leerzeichen im Pfad!
 
Wie wäre es, wenn du in der OH nachliest, was ExpandFileName macht?

A: Das ist keine Prozedur.
B: Funktionen haben einen Rückgabewert, welchen an gerne verwenden darf.
C: Macht die, wie man gerne nachlesen darf, was ganz Anderes, als du von ihr willst.

PS: Weniger bla bla und mehr unterschiedliche Wörter sind irgendwie übersichtlicher.


Tipp: Wenn man in die OH guckt, dann findet man neben ExtractFileName auch noch ExtractFileDir und ExtractFilePath.

Lemmy 24. Aug 2012 23:17

AW: Memo Load from File - Leerzeichen im Pfad!
 
Versuch mal

Delphi-Quellcode:
path:='C:\bla\bla bla\falsch'+'\..'+'\bla bla bla\';
Memo1.Lines.LoadFromFile(path+'datei.text');
oder

Delphi-Quellcode:
path:='C:\bla\bla bla\falsch';
Path := ExtractFileName(Path)+'bla bla bla\';
Memo1.Lines.LoadFromFile(path+'datei.text');
die zweite Lösung ist aber etwas böse....

Alternativ: einfach per Stringoperation den letzten Teil des Path abschneiden

TRUCKERmas 24. Aug 2012 23:19

AW: Memo Load from File - Leerzeichen im Pfad!
 
Ich habe den Fehler bereits gefunden, es mangelt jetzt nurnoch an einem
Weg einfach den Pfad den ich ihm gebe quasi so zu verändern, das er nicht mehr
in C:\a\b\c ist sonder in C:\a\b

EDIT:

Es läuft, danke an alle
Kann geschlossen werden

himitsu 24. Aug 2012 23:21

AW: Memo Load from File - Leerzeichen im Pfad!
 
Zitat:

Delphi-Quellcode:
path:='C:\bla\bla bla\falsch';
Path := ExtractFileName(Path)+'bla bla bla\';
Memo1.Lines.LoadFromFile(path+'datei.text');

Wie gesagt, ExtractFileName ist falsch, denn hier kommt jetzt "falschbla bla bla\datei.text" raus.

Aber das darf man sich gerne mal im Debugger ansehn und/oder in der OH nachlesen, wenn man's nicht glaubt.

Lemmy 24. Aug 2012 23:44

AW: Memo Load from File - Leerzeichen im Pfad!
 
Zitat:

Zitat von himitsu (Beitrag 1179800)
Wie gesagt, ExtractFileName ist falsch, denn hier kommt jetzt "falschbla bla bla\datei.text" raus.

äh.. stimmt... ich meinete ExtractFileDir. Das schneidet bei einem Pfad den hinteren Teil ab. Ist aber nicht wirklich cool - würde ich vorher per String-Operation entsprechend auftrennen.


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