Hi,
ich habe in einer Datei einen Link.
Diesen Link lese ich aus und prüfe, ob die Datei existiert.
Nun soll die Datei aber nicht nur existieren, sondern auch genauso geschreiben sein (Groß- und Kleinschreibung)
Wie kann ich dies prüfen
Dateiname auf Groß- und Kleinschreibung prüfen
-
- [ gelöst ]
-
Tweaky -
7. Februar 2010 um 12:49 -
Geschlossen -
Erledigt
-
-
Gehts nicht mit StringLeft und StringIsUpper?
-
Nur eine Idee .... mit StringGetLongName den Pfad holen, dann mit StringSplit an \ splitten und den letzten Wert im Array mit deiner gewünschten Schreibweise per StringCompare abgleichen.
edit: OK, ha irgendwie überlesen das es bei dir um Links geht. Aber vom Prinzip her ....
-
versuch das doch mit StringCompare ( "string1", "string2" ,1); 1 ist case-sensitiv ...
-
Ich würde es mal so testen
If ($StringInDatei == $StringInListe) then
laut der Hilfe
sollte == 2 Strings auf Case sensitive untersuchenMfG
Der_Doc -
also entweder ich steht dermassen auf dem Schlauch oder ihr versteht mich nicht
Wie bekomme ich den genauen Wortlaut des Dateinamens heraus?
Fileexist gibt ja nur 1 oder 0 zurück.Oder muß ich mit _Filelistetoarray alle Dateien einlesen und dann zeilenweise vergleichen?
-
[autoit]
$a="TeSt"
[/autoit][autoit][/autoit][autoit]
$b="test"
$c="TeSt"if $a=$b then msgbox(0,0,$a&"="&$b)
[/autoit]
if $a==$b then msgbox(0,0,$a&"=="&$b)
if $a==$c then msgbox(0,0,$a&"=="&$c)uups, viel zu langsam^^
ZitatWie bekomme ich den genauen Wortlaut des Dateinamens heraus?
ähhm, um dich mal zu zitieren:
Zitatalso entweder ich steht dermassen auf dem Schlauch
WAS bitte willst du denn vergleichen?!
Wenn du einen Dateinamen hast, dann kannst du diesen auch vergleichen, wenn du keinen hast, womit willst du dann vergleichen?ZitatOder muß ich mit _Filelistetoarray alle Dateien einlesen und dann zeilenweise vergleichen?
wie sonst?
-
[autoit]
$pfad = "C:\windows\tWAIn.dll"
[/autoit][autoit][/autoit][autoit]$exist = FileExists($pfad) ;gibt nur 1 zurück (Im Explorer heißt sie twain.dll), jedoch stimmt die Groß- uns Kleinschreibung nicht überein >>> somit weiß ich nicht wie genau die Groß- und Kleinschreibung der Datei im Explorer aussieht
[/autoit]
ConsoleWrite($exist & @CRLF)dann muß ich wohl die umständlichere und lagsamere Variante mit _Filelisttoarray nehmen.
Dachte es ginge einfacher
-
Er hat in den übersetzten Hilfedateinen selber Links auf Dateien eingefügt.
Nur leider die Dateinamen nicht auf Case sensitive getestet.Nun kann er zwar die Dateinamen auslesen
GUIREF.htm steht in dem Link auf die Datei, die Datei heißt aber GUIRef.htm.Ein Link im Browser läuft also ins leere.
Nun möchte er alle Dateinamen auslesen (ca 4696 Stück) und diese dann Case sensitiv
gegen seine Links in den Dateien laufen lassen.MfG
Der_Doc -
vielleicht hilft dir
[autoit]_PathSplit ($szPath, ByRef $szDrive, ByRef $szDir, ByRef $szFName, ByRef $szExt)
[/autoit]weiter
-
mit FileFindNextFile(FileFindFirstFile($link)) bekomme ich den Dateinamen raus.
Danke Der_Doc für die Lösung
-
ggf schneller....
[autoit]
[/autoit][autoit][/autoit][autoit][/autoit][autoit]
$path='"'&@Scriptdir&"\TEST.AU3"&'"' ;Pfad in Anführungsstriche wg evtl. Leerzeichen, Dateiname nicht casesensitiv$pid = Run('cmd.exe /C dir /b '&$path, "", @SW_HIDE, 6)
[/autoit][autoit][/autoit][autoit][/autoit]
$buffer=""
While 1
$buffer &= StdoutRead($pid)
If @error Then ExitLoop
;FileWrite($file, $buffer)
Wend
While 1
$buffer &= StderrRead($pid)
If @error Then ExitLoop
WEnd
MsgBox(0, "STDOUT gelesen:", $buffer) ;gibt exakten dateinamen casesensitiv