Italia
Foro

File PCMCIA-Karte lesen

 

Andreas
Spelter
Moin moin,

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

Also starte ich mein Programm und lese die erste File 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 #s=s2>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 File 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 corre 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 per 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"
.
re>
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 File dein Arbeitsverzeichnis auf deine Festplatte zu legen.
 
30.11.2004  
 




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




Andreas
Spelter
Danke per die Tips, alles probiert, nichts hilft:

Solange mein Programm aktiv ist kann ich die Karte nicht deaktivieren, selbst dann nicht wenn ich die File 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 ---- /font>
Salve, iF

7 kB
Hochgeladen:02.12.2004
Downloadcounter87
Download
 
02.12.2004  
 




Andreas
Spelter
Danke per 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 File mit wirrem Dateinamen und falschem Inhalt oder ist nach zwei Fehlermeldungen weg

Ich hatte per 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
Downloadcounter324
Download
11 kB
Hochgeladen:02.12.2004
Downloadcounter323
Download
13 kB
Hochgeladen:02.12.2004
Downloadcounter332
Download
13 kB
Hochgeladen:02.12.2004
Downloadcounter333
Download
 
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 circa die Variablen hat es einmal fast funktioniert: Es wurde die richtige File kopiert, das Ziel hatte auch den richtigen Namen am Ende der File 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
Ciao,
Du mußt auf jeden Fall entweder Großbuchstaben per 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.
Saluto
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 circa ne 2. Instanz kopieren. Solle doch deine exe sich selbst aufrufen mit nem parameter.

shell par$(0)+ -copyit

Deine exe stellt am anfang des Programmi 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 File 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
Downloadcounter94
Download
4 kB
Hochgeladen:03.12.2004
Downloadcounter110
Download
 
03.12.2004  
 




Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

7.253 Views

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

Themeninformationen



Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


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