AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Wie Zugriff auf files und ordnern, die ASCII im Namen haben?
Thema durchsuchen
Ansicht
Themen-Optionen

Wie Zugriff auf files und ordnern, die ASCII im Namen haben?

Ein Thema von Kyro · begonnen am 16. Aug 2005 · letzter Beitrag vom 28. Aug 2005
Antwort Antwort
Seite 3 von 4     123 4      
Olli
(Gast)

n/a Beiträge
 
#21

Re: Wie Zugriff auf files und ordnern, die ASCII im Namen ha

  Alt 18. Aug 2005, 12:28
Zitat von Kyro:
Wie kann ich zum beispiel ein verzeichnis auf der hdd in TNTChecklistbox laden MIT unicode zeichen?
Mit findfirst und TSearchRec kann das ja nicht klappen nachdem die ja die namen als string ausgeben!?
Back to the roots: MSDN-Library durchsuchenFindFirstFileW(), MSDN-Library durchsuchenFindNextFileW(), MSDN-Library durchsuchenFindClose() direkt als API-Funktionen benutzen.

Zitat von Kyro:
ebenso das kopieren mit filestream ist von dateien die im namen unicode zeichen enthalten nicht möglich, oder?
Theoretisch schon, einziges Problem ist, daß du keine Unicodenamen übergeben kannst. Habe mir die Klasse noch nicht angeschaut, sollte man aber umprogrammieren können. Das Handle ist danach ein Handle, egal ob durch die ANSI- oder Unicode-API erlangt.

Zitat von Kyro:
Mit CopyFileW klappt das kopieren generell zwar mit diesen dateien, kann aber zum beispiel kein resuming oder statusanzeige ermöglichen.
Mit Statusanzeige kannst du's haben (Shellstil): MSDN-Library durchsuchenSHFileOperation()
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#22

Re: Wie Zugriff auf files und ordnern, die ASCII im Namen ha

  Alt 18. Aug 2005, 13:23
Zitat von Kyro:
Also ich hab mir mal die TNTControls angesehen, bei denen funktioniert zwar das anzeigen von unicode zeichen... bringt mir aber nicht all zu viel.... aber danke für den tipp!

Wie kann ich zum beispiel ein verzeichnis auf der hdd in TNTChecklistbox laden MIT unicode zeichen?
Mit findfirst und TSearchRec kann das ja nicht klappen nachdem die ja die namen als string ausgeben!?

ebenso das kopieren mit filestream ist von dateien die im namen unicode zeichen enthalten nicht möglich, oder?
Mit CopyFileW klappt das kopieren generell zwar mit diesen dateien, kann aber zum beispiel kein resuming oder statusanzeige ermöglichen.

Danke für eure Hilfe!!!!
Für viele der Probleme sollte es Wide-Versionen in den TntWare-Units geben.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Kyro

Registriert seit: 16. Aug 2005
Ort: Wien
45 Beiträge
 
Delphi XE2 Professional
 
#23

Re: Wie Zugriff auf files und ordnern, die ASCII im Namen ha

  Alt 18. Aug 2005, 14:43
Danke!!!!!!

Verzeichnis auflisten hab ich schon mal zusammenbekommen...
hoffe dass das mit dem kopieren auch noch klappt...
vor allem so dass ich nicht wieder alles umschreiben muss

Aber warum steht denn auch nicht sowas als große fette Warnung in der delphi hilfe neben den ANSI prozeduren !!! (kleiner scherz)
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#24

Re: Wie Zugriff auf files und ordnern, die ASCII im Namen ha

  Alt 18. Aug 2005, 14:46
Zitat von Kyro:
Aber warum steht denn auch nicht sowas als große fette Warnung in der delphi hilfe neben den ANSI prozeduren !!! (kleiner scherz)
Leider stammt Delphi aus Zeiten, wo Windows 9x populärer war als die NT-Linie ... deswegen. Schade, aber es ist so.
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#25

Re: Wie Zugriff auf files und ordnern, die ASCII im Namen ha

  Alt 21. Aug 2005, 21:44
Zitat von Olli:
Alle Zeichenketten aus Ordinalwerten über 255 ($FF) müssen in den mir bekannten Delphiversionen extra durch Aneinanderkettung von WideChar-Casts erzeugt werden.
So kann man sich täuschen. Ich habe es mir vor 2 Tagen im Disassembler angeschaut und es ist so, daß der Compiler (D3 und D4) zwar einen echten Literalstring in Unicode erzeugt, leider wird aber alles bis auf das untere Byte des WideChars abgeschnitten (d.h. das obere Byte wird $00).
Fazit, es geht nicht wie oben geschildert ... offenbar gibt es keine normale Methode um in Delphi einen Unicode-String einzufügen (es sei denn über eine Ressourcendatei - extern - oder über das UTF-8-Format) ...

Wäre schön, wenn sich Leute finden würden um das mit späteren Versionen zu testen (D5 aufwärts).
  Mit Zitat antworten Zitat
Kyro

Registriert seit: 16. Aug 2005
Ort: Wien
45 Beiträge
 
Delphi XE2 Professional
 
#26

Re: Wie Zugriff auf files und ordnern, die ASCII im Namen ha

  Alt 21. Aug 2005, 22:38
@Olli ... leider versteh ich dein letztes posting zwar nicht ganz aber wenn du damit andeuten willst dass man mit der funktion "WideChar(n)" nicht alle Unicode-Zeichen replizieren kann, kann ich dir nur recht geben, hatte damit nicht viel erfolg, mit den TNT Components allerdings schon, also ich kann endlich dateien kopieren die im namen unicode zeichen enthalten.....

Allerdings gibt es nicht für alle Prozeduren alternativen die unicode unterstützen, oder ich kann sie nicht finden.... wie sieht es zum beispiel mit den Parametern aus
Normalerweise hab ich die über "Paramstr(n)" abgerufen... aber darüber bekommt man eben nur wie der funktionsname schon vermuten lässt ein String und kein widestring, und soetwas wie ParamWideStr(n) gibt es wohl zumindest in Delphi 7 nicht?!??

Falls ich das mit dem Parameter auch noch hinbekomme hab ich glaub ich alles "notewendigste" für meinen unicode support für mein app.... und ich glaub das wird so ziemlich das letzte prog sein was ich mit D7 mache, da sieht man schon dass es ziemlich "altert".
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#27

Re: Wie Zugriff auf files und ordnern, die ASCII im Namen ha

  Alt 21. Aug 2005, 22:48
http://www.delphipraxis.net/internal...ect.php?t=8873
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#28

Re: Wie Zugriff auf files und ordnern, die ASCII im Namen ha

  Alt 21. Aug 2005, 22:49
Zitat von Kyro:
@Olli ... leider versteh ich dein letztes posting zwar nicht ganz aber wenn du damit andeuten willst dass man mit der funktion "WideChar(n)" nicht alle Unicode-Zeichen replizieren kann
Im Grunde meine ich genau dies. Kannst du auch irgendwie Unicodestrings, wie zB diesen: "Сніжок.txt" in deinen Quellcode einbauen und auf eine im Explorer (!) so benannte Datei zugreifen?

Zitat von Kyro:
Allerdings gibt es nicht für alle Prozeduren alternativen die unicode unterstützen, oder ich kann sie nicht finden.... wie sieht es zum beispiel mit den Parametern aus
Dazu habe ich vor langer Zeit etwas im DF verfaßt:
http://www.delphi-forum.de/topic_die...sen_15503.html

Edit:
Holla die Waldfee, da hat jfheins wohl ein besseres Gedächtnis als ich. Habe es wohl auch nochmal hier in der DP gepostet. ... und exakt zur gleichen Zeit
  Mit Zitat antworten Zitat
Kyro

Registriert seit: 16. Aug 2005
Ort: Wien
45 Beiträge
 
Delphi XE2 Professional
 
#29

Re: Wie Zugriff auf files und ordnern, die ASCII im Namen ha

  Alt 21. Aug 2005, 23:26
Zitat von Olli:
Kannst du auch irgendwie Unicodestrings, wie zB diesen: "Сніжок.txt" in deinen Quellcode einbauen und auf eine im Explorer (!) so benannte Datei zugreifen?
Also bis jetzt nur über die TNTComponents, also wenn ich zum beispiel TNTEdit1.text auf Сніжок.txt setze dann kann ich auch mit der datei die so im explorer benannt wurde arbeiten....

Delphi 7 speichert das so: Text = #1057#1085#1110#1078#1086#1082'.txt'

Danke olli und jfheins .. werde mir das mit den parametern anschaun, schaut aber schon mal verdammt gut aus!!
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#30

Re: Wie Zugriff auf files und ordnern, die ASCII im Namen ha

  Alt 21. Aug 2005, 23:33
Zitat von Kyro:
Delphi 7 speichert das so: Text = #1057#1085#1110#1078#1086#1082'.txt'
Cool, dann können neuere Delphiversionen also doch mit Unicode-Zeichenliteralen umgehen. Jetzt wäre noch interessant herauszufinden ab welcher Version das möglich ist. Als übliche Verdächtige bleiben nur noch Version 5-7 (wir können ja nicht ausschließen, daß 7 die erste mit dieser Unterstützung war). Bei Delphi 4 wird aus #1057 in der kompilierten Datei ein #33, weil #1057 = #$0421 ... und der (rote) obere Teil "abgeschnitten" wird, dadurch erhalten wir #33 = #$21.

Das mit den beiden oben verlinkten Themen (mit gleichem Inhalt) sollte auch mit WideStrings zusammenpassen. Versuche mal eine Zuweisung. Sollte ohne weiteres gehen. Du kannst dir natürlich auch deine eigenen Wide-Versionen für ParamStr() usw. schreiben

@Daniel: Danke für die Anpassung oben im Beitrag
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:37 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