File suchen

Zugriff, Engines, Konvertierung. Von ADS über DBF bis zu SQL.

Moderator: Moderatoren

Antworten
Benutzeravatar
Muecke
1000 working lines a day
1000 working lines a day
Beiträge: 623
Registriert: Di, 24. Okt 2006 7:19
Wohnort: Samstagern CH
Hat sich bedankt: 3 Mal
Danksagung erhalten: 9 Mal
Kontaktdaten:

File suchen

Beitrag von Muecke »

Hallo,

Ich kann mir nicht erklären, warum mit dieser Funktion das File auf der Festplatte nicht gefunden wird.Dies Tritt nur auf wenn Umlaute im Pfad vorhanden sind(üöäèéà).
Muss ich dies zuerst konvert.da ich der Pfad von einem fpt hole.

Code: Alles auswählen

FUNCTION pathSuchen(oDb,cPath)
LOCAL lRet:= .F.

IF file( cPath )
   lRet := .T.
ELSE
   &oDb->( dbRlock()  )
   &oDb->( dbDelete() )
   &oDb->( dbUnlock() )
ENDI
RETURN lRet
Wenn ich dies betrachte mit eine MSgbox stimmt der Pfad und die Umlaute sind auch vorhanden.

Gruss Thomas
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hallo,

wenn dein Programm auf set charset oem steht, werden Umlaute für msgbox etc umgesetzt. Bei den Fileoperationen aber nicht.
Prüfe im Explorer ob die Umlaute sauber angezeigt werden (CMD Box geht hier nicht), dann sind sie ANSI und du mußt :

cFile := ConvToAnsiCP(cFile) // aufrufen

Für diese Aufgaben ist es besser set charset to ANSI zu stellen.

Wenn du von WebSiten einließt kann es auch sein, dass die Umlaut codiert sind: ä -> ä
Gruß
Hubert
Benutzeravatar
Muecke
1000 working lines a day
1000 working lines a day
Beiträge: 623
Registriert: Di, 24. Okt 2006 7:19
Wohnort: Samstagern CH
Hat sich bedankt: 3 Mal
Danksagung erhalten: 9 Mal
Kontaktdaten:

Beitrag von Muecke »

Hallo Hubert,

super funktioniert :razz:

Gruss Thomas
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21199
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Hi,

hier kommt wieder der ungemein wichtige Rat, den ich immer wieder höre:

KEINE SONDERZEICHEN IN DATEI-VERZEICHNISNAMEN. Es gibt einfach keine Garantie dafür, dass es immer und überall klappt. Die Systeme sind alle amerikanisch und die kennen sowas nicht. Sie gaukeln es Dir nur vor.

Ich weiß, es ist schwer, aber man sollte sich daran gewöhnen.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hallo Manfred,

so ganz stimmt die Aussage nicht ;-) wenn du ein reines ANSI Programm schreibst (set charset to ansi) dann können alle Umlaute enthalten sein.
Ob der Anwender diese Namen eintippen kann steht auf einem anderen Blatt ;-)
Gruß
Hubert
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21199
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Hi Hubert,

wenn Du flexibel sein willst, dann solltest Du auf Umlaute verzichten. Es wird doch hier immer wieder darauf hingewiesen, wie es in anderen Ländern sein kann. Nimm nur meinen Thread mit Datum und Uhrzeit. Wenn es doch alles so egal ist, bzw. so einfach ist, warum werden dann in anderer Hinsicht z.B. die Datumsformate von anderen Ländern erwähnt.

Es geht hier darum, dass es immer gefährlich ist Umlaute zu benutzen, weil die wenigsten Länder diese kennen.
Nimm HTML Seiten. Dort kann man die Umlaute als Umlaute schreiben, oder aber als Formel. Beides klappt, nur das eine klappt weltweit und das andere eben nicht.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hallo Manfred,

ich mache dies selbst ja auch, meist nutze ich sogar nur 8 Zeichen Namen ;-) aber was will man machen, wenn der Anwender solche Namen vergibt und dein Programm die lesen soll.

Deshalb die Feststellung, dass Xbase++ das kann, nur die automatische Konvertierung ist dabei nicht aktiv.
Gruß
Hubert
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21199
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Hi Hubert,

mein reden. Es kann es. Windows und Linux usw. können es auch und tun es auch, aber das sind die Stellen an denen es kracht, weil es nicht klappt und der normale umlautdenkende Mensch kratzt sich den Kopf.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Muecke
1000 working lines a day
1000 working lines a day
Beiträge: 623
Registriert: Di, 24. Okt 2006 7:19
Wohnort: Samstagern CH
Hat sich bedankt: 3 Mal
Danksagung erhalten: 9 Mal
Kontaktdaten:

Beitrag von Muecke »

Hallo Manfred,

Ja, da gebe ich dir recht.Leider kommt da immer wieder von den Kunden den Spruch.In excel oder word und was auch für Windowsprogramme, kann man das Dokument speichern wie sie wollen.

Was würdest Du den für ein Vorschlag geben.
Box einblenden, um darauf hinzuweisen, dass keine Umlaute im FileName vorhanden sein dürfen.

Gruss Thomas :-k
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21199
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Hi Thomas,

in meinem Programm gibt es keine Möglichkeit, da wird alles von mir vorgegeben. Wenn ich einen Service biete bei Kunden, dann weise ich darauf hin und da alle erwachsene Menschen sind, sollten sie es verstehen. Wenn nicht, dann gibt es eben Probleme und die werden dann auch bezahlt. Spätestens dann verstehen und handeln sie. Harte Sache, aber sie wirkt.

Es ist ja nicht so, dass es unbedingt knallen muß. Es ist halt nur der Hinweis, das es wenn, dann dort Probleme geben kann/wird.

PS: Ich gebe ja zu, ich benutze auch Umlaute. Was ich mir aber verkneife ist das "ß". Ansonsten sündige ich auch, wenn ich nicht sofort daran denken. :roll:
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14655
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Beitrag von Jan »

Ich habe ein Programm, da gibt es einen Datenaustausch mit Amiland. Dafür habe ich eine ganz kurze Routine geschrieben, die alle Umlaute konvertiert (ä->ae, Ä->Ae, ß-> ss). Funktioniert einwandfrei, und ich bin ein für alle mal alle Sorgen los.

Allerdings würde ich das bei Dateinamen nicht einfach so stillschweigend machen. Ich würde wenigstens einen Hinweis auf die Konvertierung geben, damit der User weiß, das "sein" Dateiname nicht 100%ig übernommen wurde.

Jan
Antworten