Deutsch
Forum

Datei auf PCMCIA-Karte lesen

 

Andreas
Spelter
Moin moin,

ich bekomme eine Textdatei geliefert die Daten enthält die ich grafisch darstellen möchte. Die Datei hat immer den selben Namen und kommt auf einer PCMCIA-Karte daher. Mit meinem Programm möchte ich nun mehrere dieser Dateien in ein Diagramm zeichen um diese miteinander vergleichen zu können.

Also starte ich mein Programm und lese die erste Datei mit folgendem Programmteil ein und lasse sie zeichnen:
KompilierenMarkierenSeparieren
assign #1,sDatei$
reset #1
input #1,sZeile$ Datum lesen
sDatei$=mid$(sZeile$,13,4)+"-"+mid$(sZeile$,10,2)+"-"+mid$(sZeile$,7,2)+"_"+mid$(sZeile$,1,2)+"-"+mid$(sZeile$,4,2)
...
input #1,sZeile$
rX%=val(substr$(sZeile$,2,","))
rY%=val(substr$(sZeile$,5,","))
moveto (rX0%+rX%*3.5),(rY0%-rY%*1.5)

whilenot @eof(#1)

    input #1,sZeile$
    rX%=val(substr$(sZeile$,2,","))
    rY%=val(substr$(sZeile$,5,","))
    lineto (rX0%+rX%*3.5),(rY0%-rY%*1.5)

endwhile

close #1

Nachdem nun also die erste Kurve gezeichnet ist, muß die PCMCIA-Karte also aus dem Notebook raus und in einem Drucker mit einer neuen Datei beschrieben werden und genau hier beginnt mein Problem: Windows 2000 weigert sich die Karte zu deaktivieren, es behauptet immer sie würde noch verwendet und ich solle es später nochmal versuchen. Aber auch Stunden später geht es noch nicht, erst wenn ich mein Programm beende kann ich die Karte deaktivieren. Wenn ich die Karte bei aktivem Programm einfach so entferne bekomme ich schimpfe von Windows beim nächsten einstecken der Karte piepst Windows dann zwar, findet die Karte aber trotzdem nicht und mein Programm dann selbstverständlich auch nicht. Also Karte nochmal raus, nochmal Mecker von Windows, Karte wieder rein und alles ist wieder gut. Ich kann die Karte lesen aber danach wieder nicht deaktivieren und das ganze Spiel beginnt wieder von vorne.

Wenn mein Programm nicht läuft kann ich die Karte jedesmal deaktivieren oder auch unter Windows-Gemecker einfach so entfernen beim nächsten einschieben wird sie sofort erkannt.

Irgendwie scheint also mein close #1 die Karte nicht freizugeben. Es wird aber wirklich jedesmal durchlaufen.

Was kann ich gegen diesen Fehler tun?

Viele Grüße
Andreas
 
30.11.2004  
 



Nun, ich verstehe das Problem.

Einfache Frage für den Anfang: Wenn assign/close da vielleicht etwas verbasselt - versuche doch extern an das file zu kommen.

Entweder probierst Du es erstmal mit dem Profanschem Copy oder dann mit dem Command.Com / Cmd Copy.

Quasi:
KompilierenMarkierenSeparieren
shell "cmd /c copy file.txt c:\tmp.txt"
assign #1,"C:\tmp.txt"
...
So bekommst zumindest heraus obs wirklich am Profan oder am OS liegt.

Salve, iF
 
30.11.2004  
 



Hallo Andreas...

Leider habe ich keinen blassen Schimmer von PCMCIA - aber vielleicht hilft auch etwas Brainstorming.

Versuche doch mal mit z.B.
KompilierenMarkierenSeparieren
nach dem Schließen der Datei dein Arbeitsverzeichnis auf deine Festplatte zu legen.
 
30.11.2004  
 




Jörg
Sellmeyer
Hallo Andreas,
Vielleicht reicht auch schon ein FileMode 0 für Readonly vor dem Assign.
Gruß
Jörg
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
01.12.2004  
 




Andreas
Spelter
Danke für die Tips, alles probiert, nichts hilft:

Solange mein Programm aktiv ist kann ich die Karte nicht deaktivieren, selbst dann nicht wenn ich die Datei von der Karte mit shell cmd... auf die Festplatte kopiert und von dort gelesen habe.

Noch mehr Ideen?

Andreas

PS: Hab gerade noch ein Notebook mit Windows 98 gefunden, das stellt sich mit meinem Programm nicht so pingelig an: Karte raus, Karte rein, einlesen geht.
 
01.12.2004  
 



Ich hab Dir hier mal ne dll gebastelt - versuchs mal damit.

Wichtig dabei ist das die DLL nicht per usedll geladen wird - sondern nur per extern.
Die DLL hat auch nur eine Funktion CP Filename1 Filename2 CopyFileMode.

Mit dem einstellbaren CopyFileMode kannst Du ja mal rummspielen.

Es kann aber sein das die DLL mit komischen Pfaden nicht klarkommt.
Teste es bitte erst wie ich auf LW C. Also bei mir klappte es wunderbar.

So gehts:
KompilierenMarkierenSeparieren
cls
print external ("cp.dll","cp","c:S2.BMP","C:s4.bmp",0)+" Bytes"
waitkey
end
Open Access
open_access_ReadOnly          = $0000; { ---- ---- ---- -000 }
open_access_WriteOnly         = $0001; { ---- ---- ---- -001 }
open_access_ReadWrite         = $0002; { ---- ---- ---- -010 }
Open share rights
open_share_DenyReadWrite      = $0010; { ---- ---- -001 ---- }
open_share_DenyWrite          = $0020; { ---- ---- -010 ---- }
open_share_DenyRead           = $0030; { ---- ---- -011 ---- }
open_share_DenyNone           = $0040; { ---- ---- -100 ---- }
Salve, iF

7 kB
Hochgeladen:02.12.2004
Ladeanzahl84
Herunterladen
 
02.12.2004  
 




Andreas
Spelter
Danke für die Mühe, aber diese DLL funktioniert bei mir nicht.

- unter Windows 98 hängt sich das Programm einfach weg
- unter Windows 2000 gibt es immer zwei Fehlermeldungen und ist dann weg
- unter Windows XP erzeugt es entweder eine Datei mit wirrem Dateinamen und falschem Inhalt oder ist nach zwei Fehlermeldungen weg

Ich hatte für diese Versuche auch wirklich nur dieses Programm übersetzt:

cls
print external (cp.dll,cp,c:est1.txt,c:est2.txt,0)+ Bytes
waitkey
end

Andreas

11 kB
Hochgeladen:02.12.2004
Ladeanzahl322
Herunterladen
11 kB
Hochgeladen:02.12.2004
Ladeanzahl321
Herunterladen
13 kB
Hochgeladen:02.12.2004
Ladeanzahl330
Herunterladen
13 kB
Hochgeladen:02.12.2004
Ladeanzahl330
Herunterladen
 
02.12.2004  
 



Welches Profan hast?

Wenn <xprofan, dann mache statt

print external (cp.dll,cp,c:est1.txt,c:est2.txt,0)+ Bytes

einfach

f1$=c:est1.txt
f2$=c:est2.txt
print external (cp.dll,cp,addr(f1$),addr(f2$),0)+ Bytes

Salve, iF
 
02.12.2004  
 




Andreas
Spelter
Ich arbeite hier mit Profan 7.0 unter Windows XP.

Mit dem Umweg über die Variablen hat es einmal fast funktioniert: Es wurde die richtige Datei kopiert, das Ziel hatte auch den richtigen Namen am Ende der Datei wurden jedoch einige Zeilen gelöscht und irgendwelcher Unsinn angehängt.

Bei allen weiteren Versuchen passierte jedoch nichts mehr, auch nicht nach einem Neustart von Windows, das Programm hängt sich jetzt immer nach test weg.

Andreas

cls
declare f1$
declare f2$
print test
f1$=c:est1.txt
f2$=c:est2.txt
print external(cp.dll,cp,addr(f1$),addr(f2$),0)+ Bytes
waitkey
end
 
02.12.2004  
 




Jörg
Sellmeyer
Hallo,
Du mußt auf jeden Fall entweder Großbuchstaben für die Literale benutzen oder den Backslash doppelt schreiben.
Ansonsten interpretiert Profan das als Tabulator.
Also:
C:TEST.TXT
c:\test.txt
Wenn es tatsächlich schon bei print test hängt, fällt mir allerdings auch nix dazu ein.
Gruß
Jörg
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
02.12.2004  
 



Das mit dem Print <- war wirklichn blödes Beispiel. Wäre ja nicht die 1. Sprache mit Escsequenzen.

Machs doch anders - wenn die Anwendung beendet sein muß - dann beende sie doch. Machen wir ein Trick. Laß deine Exe das File einfach über ne 2. Instanz kopieren. Solle doch deine exe sich selbst aufrufen mit nem parameter.

shell par$(0)+ -copyit

Deine exe stellt am anfang des Programmes fest das es mit nem Parameter gestartet wurde:

if trim$(par$(1))=-copyit

copy bla bla
END

endif

und kopiert das File. Die exe die es kopierte is doch dann beendet.

Was da nun der Unterschied sein soll zwischen dem Aufruf einer CMD oder einer Eigenen exe weiß ich auch nicht - aber ein Versuch isses wert.

Salve, iF
 
02.12.2004  
 




Andreas
Spelter
es geht voran: Das Kopieren funktioniert jetzt, aber die Datei wird beim kopieren verändert:

Andreas

cls
declare f1$
declare f2$
print test
f1$=d:\test1.txt
f2$=d:\test2.txt
print external(cp.dll,cp,addr(f1$),addr(f2$),0)+ Bytes
waitkey
end

1 kB
Hochgeladen:03.12.2004
Ladeanzahl92
Herunterladen
4 kB
Hochgeladen:03.12.2004
Ladeanzahl108
Herunterladen
 
03.12.2004  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

7.125 Betrachtungen

Unbenanntvor 0 min.
Ludwig Albien04.01.2013
Paul Glatz03.08.2012

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie