AGB  ·  Datenschutz  ·  Impressum  







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

IOResult funktioniert nicht korrekt

Ein Thema von wespi · begonnen am 10. Feb 2005 · letzter Beitrag vom 11. Feb 2005
Antwort Antwort
Seite 2 von 3     12 3      
wespi

Registriert seit: 10. Feb 2005
9 Beiträge
 
#11

Re: IOResult funktioniert nicht korrekt

  Alt 10. Feb 2005, 16:49
hab's probiert -------------> funktioniert, ergibt Fehlerfenster mit Fehler 123

Nur nützt mir das recht wenig, weil Ziel meines Programms nicht das das Darstellen eines Fehlerfensterchens ist, sondern gefälligst 'n bischen mehr.

Auf jeden Fall zeigt es, dass Delphi auch ordentlich laufen kann, wenn nicht irgendwelche ???? Umstände eintreten.

Ich hab' unter BP7 schon alles mögliche programmiert, das hatte jedenfalls nie zur Folge, dass IoResult nicht mehr funktionierte.

Vielleicht hängt es mit dem Einbinden von HighResTimer (eine microsec-genaue Timerkomponente) oder mit dem Verwenden von IO.dll (erlaubt Portzugriffe unter XP) zusammen.

Dass sich aber Delphi dadurch so durcheinander bringen lässt ????!!!!!, dass IoResult nicht mehr funktioniert, macht mich nicht gerade froh.


mfg wespi
  Mit Zitat antworten Zitat
franktron

Registriert seit: 11. Nov 2003
Ort: Oldenburg
1.446 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#12

Re: IOResult funktioniert nicht korrekt

  Alt 10. Feb 2005, 16:59
Mal ne ganz doofe Frage warum fragste nicht einfach mit fileexists('fehler'.rec') ab ob die File da ist dann brauchste keine IOResult mehr.
Frank
Tux sein Lieblingsquellcode
While anzfische<TuxSatt do begin
Fisch:=TFisch.Create; Tux.EssenFisch(Fisch); Fisch.Free;inc(anzfische); end;
  Mit Zitat antworten Zitat
wespi

Registriert seit: 10. Feb 2005
9 Beiträge
 
#13

Re: IOResult funktioniert nicht korrekt

  Alt 10. Feb 2005, 17:08
Berechtigte Frage, aber es geht ja beim Aufruf von IoResult nicht immer nur darum, ob ein file existiert, sondern um alle möglichen Dateifehler (read,write,eof......)

und wenn die funktion bei reset nicht korrekt läuft, wie soll ich mich dann in allen möglichen Situationen darauf verlassen können ?

Also das hilft auch nicht so recht weiter, trotzdem vielen Dank, dass Ihr Euch um meine Probleme schert.

mfg wespi
  Mit Zitat antworten Zitat
roderich
(Gast)

n/a Beiträge
 
#14

Re: IOResult funktioniert nicht korrekt

  Alt 10. Feb 2005, 17:47
mal ne dumme(?) Idee:
Wie man weiß, wird der Wert von IOResult nach dessen Abfrage (IOResult ist nämlich eine Funktion !) wieder auf 0 gesetzt.
Kann es sein, daß durch die Anzeige von IOResult im Watch-Fenster genau dies passiert ? Probier's mal ohne IOResult im Watch-Fenster aus !

Gruß
Roderich
  Mit Zitat antworten Zitat
wespi

Registriert seit: 10. Feb 2005
9 Beiträge
 
#15

Re: IOResult funktioniert nicht korrekt

  Alt 10. Feb 2005, 18:09
Danke für den Tip, hatte ich aber auch schon mal probiert und hat nichts gebracht(schon bevor ich um Hilfe gebeten habe).
Ausserdem dürfte es dann mit dem kleinen Prögrämmchen von weiter oben auch nicht funktionieren, da war's aber auch mit watchfenster ok.



mfg wespi
  Mit Zitat antworten Zitat
franktron

Registriert seit: 11. Nov 2003
Ort: Oldenburg
1.446 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#16

Re: IOResult funktioniert nicht korrekt

  Alt 10. Feb 2005, 18:38
Wird IOResult überhaupt noch supportet oder ist das nur noch aus Kompalität da.
Frank
Tux sein Lieblingsquellcode
While anzfische<TuxSatt do begin
Fisch:=TFisch.Create; Tux.EssenFisch(Fisch); Fisch.Free;inc(anzfische); end;
  Mit Zitat antworten Zitat
wespi

Registriert seit: 10. Feb 2005
9 Beiträge
 
#17

Re: IOResult funktioniert nicht korrekt

  Alt 10. Feb 2005, 19:21
Weiss ich nicht, aber das was Borland (oder Inprise?) an "Funktionen" anbietet, sollte doch auch "funktionieren", oder?
Sonst sollten die gleich sagen -- wird aus dem Sprachumfang gestrichen !
mfg wespi
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#18

Re: IOResult funktioniert nicht korrekt

  Alt 10. Feb 2005, 21:55
Du musst irgendwo einen Fehler in deinem Code haben. Ich habe diese Funktion schon tausende Male benutzt und es hat bisher immer geklappt. Rufst du vielleicht IOResult zwei mal auf? Dass es dann beim zweiten mal 0 ist wenn keine Aus- und Eingabeoperationen stattgefunden haben, ist ja dann klar.

Delphi-Quellcode:
function IOResult: Integer; // in der Unit System
begin
  Result := InOutRes;
  InOutRes := 0;
end;
Und hier wird nicht der Rückgabewert der Funktion auf Null gesetzt, sondern die gloable Variable InOutRes, damit sie für den nächsten Aufrufer wieder mit null initialisiert ist.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
schöni

Registriert seit: 23. Jan 2005
Ort: Dresden
445 Beiträge
 
Delphi 7 Personal
 
#19

Re: IOResult funktioniert nicht korrekt

  Alt 10. Feb 2005, 22:05
Hallo Wespi!

Dann nimm doch Exceptions.

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var F: file;
begin
  try
    System.AssignFile(F, '?invalid?');
    System.Reset(F);
  except
    On EInOutError do ShowMessage('Fehlernummer: ' + IntToStr(IoError));
    //Ich glaub, es war EInOutError bei Dateifehler
  end;
end;
Schau Dir also mal die Exceptions an.

Viel Erfolg wünscht

schöni
Damit der Topf nicht explodiert, lässt man es ab und zu mal zischen.
  Mit Zitat antworten Zitat
wespi

Registriert seit: 10. Feb 2005
9 Beiträge
 
#20

Re: IOResult funktioniert nicht korrekt

  Alt 11. Feb 2005, 00:32
Try .. except .. end ist mir als "Pascaler" noch etwas fremd, habe aber jetzt auch das probiert.
Bei mir wird der except .. end code-teil nicht durchlaufen, obwohl definitif ein Dateifehler auftreten muss, denn es existiert ja kein file 'fehler.rec'.

Delphi-Quellcode:
1 try
2 system.assignFile(f,'fehler.rec');
3 system.reset(f);
4 except
5 Ioerror := system.ioresult;
6 showmessage(intToStr(ioerror));
7 end;
8 if (IoError = 0) then
9 begin
10 //Anweisungen
11 end;
Nach system.reset(f) springt der debugger auf Zeile 8, als gäbe es keinen Io-Fehler.

Ich gewinne immer mehr den Eindruck, dass die installierte Komponente "HighResTimer.pas" oder die verwendete "IO.DLL", die ich beide aus dem Internet habe und die beide recht hardwarenah programmiert sind, dieses seltsame Verhalten auslösen.
Vielleicht auch mein Umgang mit diesen, die Xp oder Win2000 ja in einer Form überlisten sollen, die Bill gar nicht so zulassen wollte.
Denn Zugriffe auf Ports oder die Verwendung der internen Timer ist ja eigentlich seit NT nicht mehr zulässig.

Mein Ziel ist es (oder war, wenn's nicht funktioniert) jedenfalls, mein unter DOS in BP7 geschriebenes Programm, das mithilfe einer selbstgebauten ISA-Karte und der zugehörigen Steuerkiste imstande war, die Betriebsmoment-Kennlinien und Start-Stop-Kenlinien von Schrittmotoren zu ermessen und zu dokumentieren, nach Delphi zu portieren.
Ich habe, nachdem ich im Netz diese beiden Programme (IO.DLL und HighresTimer) entdeckt habe, die Möglichkeit gesehen, ohne allzu grossen Aufwand, genau das zu verwirklichen.

Unter DOS und BP7 hat das wunderbar geklappt.

Teiber unter WinXP oder Win2000 zu programmieren ist mir zu aufwendig (vielleicht bin ich auch zu blöd dazu).

Ich werde also noch ein bischen selbst probieren, die Probleme unter Delphi zu beseitigen und bedanke mich auf's schärfste bei allen, die nicht Zeit und Mühe gescheut haben, mir zu helfen, wenn auch ohne Erfolg.

Vielleicht findet sich ja auch noch jemand, der bereits Erfahrung mit den vorgenannten Programmen hat, und diese Probleme bereits erschlagen hat.

Jedenfalls besten Dank an alle

mfg wespi

p.s. ich hätte allerdings nicht angenommen, dass Delphi sich in seine Funktionen pfuschen lässt, egal wie die verwendeten Komponenten oder DLL's programmiert sind.
Na ja unter DOS war halt alles etwas übersichtlicher und einfacher --- auch für Borland-Programmierer.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 04:05 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