AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Bedeutung von E/A-Fehler 123?

Ein Thema von easywk · begonnen am 10. Nov 2008 · letzter Beitrag vom 10. Nov 2008
Antwort Antwort
easywk

Registriert seit: 9. Jul 2003
Ort: Schwanewede
117 Beiträge
 
Delphi 7 Enterprise
 
#1

Bedeutung von E/A-Fehler 123?

  Alt 10. Nov 2008, 12:12
Moin, moin,

im meiner Anwendung kommt es bei manchen Anwendern zu einem E/A-Fehler 123, bei den meisten anderen Anwendern aber nicht. Kann mir jemand sagen, was die Nummer 123 bei den E/A-Fehlern aussagt? Die Nummer finde ich in den Standard-E/A-Fehlerlisten leider nicht.


Der Fehler erscheint nur, wenn das Programm im Netzwerk gestartet worden ist. Abbruchstelle ist die nachfolgende Anweisung:
if SelectDirectory(Pfad,[],0) then wobei Pfad den Wert "C:\Temp\" hat ...

Vielen Dank.
easy
Björn
if all else fails - read the instructions
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#2

Re: Bedeutung von E/A-Fehler 123?

  Alt 10. Nov 2008, 12:27
Hallo,

müsste bedeuten, dass im Dateinamen einer zu speichernden Datei ein ungültiges Zeichen enthalten ist.

Frag' mal Google: hier, da gibt es Hinweise auf diesen Fehler.

Gibt es auf jedem Rechner C:\Temp\?

Wenn nein, nutze eventuell für den Zusammenbau des Dateinamens die Umgebungsvariabeln %TEMP% oder %TMP%.
  Mit Zitat antworten Zitat
easywk

Registriert seit: 9. Jul 2003
Ort: Schwanewede
117 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Bedeutung von E/A-Fehler 123?

  Alt 10. Nov 2008, 12:31
Hallo,

ich habe dieses Verfahren verwendet, um Pfad vorzubelegen Und das Verzeichnis gibt es auch.
Es muss irgendwie SelectDirectory liegen. Es passiert auch nur, wenn die Vorbelegung von Pfad auf die lokale Festplatte weist, dass Programm selber im Netzwerk gestartet worden ist.

Die Google-Links helfen mir nicht weiter. das hatte ich bereits versucht. Da gab es aber immer Fehler mit der Dateinamenzuweisung. Ich suche aber ja gar keinen Dateinamen sondern will ein Verzeichnis auswählen. Trotzdem danke

cu
Easy
Björn
if all else fails - read the instructions
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Bedeutung von E/A-Fehler 123?

  Alt 10. Nov 2008, 12:39
Hallo,

möglicherweise wird der Fehler gar nicht von deinem Code hervorgerufen (klick) oder die Ursache ist etwas, was du zunächst gar nicht im Verdacht hattest (klick).

Gruß Hawkeye
  Mit Zitat antworten Zitat
easywk

Registriert seit: 9. Jul 2003
Ort: Schwanewede
117 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Bedeutung von E/A-Fehler 123?

  Alt 10. Nov 2008, 12:51
Zitat von Hawkeye219:
möglicherweise wird der Fehler gar nicht von deinem Code hervorgerufen
Es scheint so zu sein. Von SelectDirectory() gibt es ja zwei Varianten und wenn ich anstatt
if SelectDirectory(Pfad,[],0) then die Variante
if SelectDirectory('Verzeichnis wählen','',Pfad) then benutze, dann geht es.

Danke.

cu
easy
Björn
if all else fails - read the instructions
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#6

Re: Bedeutung von E/A-Fehler 123?

  Alt 10. Nov 2008, 13:03
Hallo,

hab' mal eben ein Programm geschrieben, das die Funktion aufruft und das dann über's Netz mit UNC-Pfad von 'nem Rechner an 'nem anderen Standort aufgerufe. Gibt keine Probleme, selbst wenn das in Pfad angegeben Verzeichnis nicht existiert.

Da blieben als Fehlermöglichkeiten: Rechteprobleme oder unterschiedliche Zeichensätze?

SelectDirectory benutzt intern TSelectDirDlg aus FileCtrl. Setz' Dir mal 'nen Breakpiont vor dem If und versuche dann in FileCtrl hinein zu debuggen (wenn es Dir gelingt, auf Deinem Rechner den Fehler nachzuvollziehen, sonst bringt das natütlich nix).
Das FormCreate von dem Dialog sieht (bei Delphi 7) so aus:
Delphi-Quellcode:
procedure TSelectDirDlg.FormCreate(Sender: TObject);
var
  UserHandle: THandle;
  NetDriver: THandle;
  WNetGetCaps: function (Flags: Word): Word;
begin
  { is network access enabled? }
  UserHandle := GetModuleHandle(User32);
  @WNetGetCaps := GetProcAddress(UserHandle, 'WNETGETCAPS');
  if @WNetGetCaps <> nil then
  begin
    NetDriver := WNetGetCaps(Word(-1));
    if NetDriver <> 0 then
    begin
      @WNetConnectDialog := GetProcAddress(NetDriver, 'WNETCONNECTDIALOG');
      NetButton.Visible := @WNetConnectDialog <> nil;
    end;
  end;

  FAllowCreate := False;
  DirLabel.BoundsRect := DirEdit.BoundsRect;
  DirListChange(Self);
end;
Könnte mir vorstellen, das eventuell hier der Fehler auftritt.

Es wäre interessant zu wissen, ob der Fehler vor oder nach dem Anzeigen des Dialoges auftritt.

Die zweite von Dir benutze Variante nutzt einen vollkommen anderen Weg zur Anzeige des Dialoges. Da mag es durchaus sein, dass der eine funktioniert und der andere nicht.
  Mit Zitat antworten Zitat
easywk

Registriert seit: 9. Jul 2003
Ort: Schwanewede
117 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Bedeutung von E/A-Fehler 123?

  Alt 10. Nov 2008, 13:12
Ich kann es bei mir nicht nachvollziehen, daher auch nicht debuggen. Ich bin mittels Logdateien auf die Stelle gekommen (zum Glück ist der Anwender extrem kooperativ ). Ich denke es liegt an einer ganz simplen Sache. Das Programm ist auf einem Linux-Server mit Samba-Umgebung abgelegt und wird von Windows aus gestartet ... auf nem Windows-Server oder einer anderen Windows-Workstation gibt es kein Problem. Muss also mit dem Linux zusammen hängen. Mir steht aber leider kein Linuxserver zur Verfügung.

Ich werde jetzt einfach alle SelectDirectory auf die andere Variante umstellen und gut ist.

cu
easy
Björn
if all else fails - read the instructions
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#8

Re: Bedeutung von E/A-Fehler 123?

  Alt 10. Nov 2008, 13:15
Hallo,

Dein Lösungsweg ist okay.
Das klingt wirklich schwer nach Zeichensatzproblemem, c:\temp\ und Co. sind auf 'nem Linuxrechner nicht üblich.
  Mit Zitat antworten Zitat
Klaus01
Online

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#9

Re: Bedeutung von E/A-Fehler 123?

  Alt 10. Nov 2008, 14:14
Zitat von easywk:
. Mir steht aber leider kein Linuxserver zur Verfügung.
Der ließe sich auf einer virtuellen Maschine (VMWare) einrichten, nur für den Fall dass Du es noch einmal brauchen solltest.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Antwort Antwort


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 08:40 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