2 Probleme! Datei auslesen & Parallele Schnittstelle

ReeeN

Grünschnabel
zum 1. Problem
Also ich hab ne Datei *.dat die im Text-Editor so aussieht (<Variabel> steht für einen Text oder Zahl):
1|<Text>|<IP-Adresse>|4661
18.0|11.7|4036

mir fällt nur grade auf, wo hier jetzt ein Zeilenumruch ist steht im Editor nur ein Rechteck!
und ich möchte den Text bzw. die Zahlen auslesen und in einzelne Variable aufteilen! d.h. nachher hab ich die Variablen:
a = 1
b = <Text>
c = <IP-Adresse>
d = 4661
e = 18.0
f = 11.7
g = 4036

Die Datei wird immer wieder aktualisiert und die Werte ändern sich, also muß in regelmäßigen abständen ausgelesen werden!

zum 2. Problem
Also! Ich habe mal irgendwann in der Schule ein so genanntes "Interface" auf eine kleine Platiene gelötet! Das Ding wird am normalen Druckerport (Parallel-Port) angeschlossen mit einem Centronics-Stecker (oder so ähnlich) und wir haben dann über das ganz alte Basic (win 3.11) auf dem Ding unabhängig voneinander 8 Dioden leuchten lassen! Man mußte das ganze immer ausrechnen, wollte man z.B. die 2. und die 5. Diode leuchten lassen mußte man 2hoch1 + 2hoch4 rechnen und dann irgendwas mit "out" und diese Zahl ins Basic schreiben! Und da ist auch mein Problem, kann mir jemand da helfen? Ich hab VB6 und würde das Ding gerne benutzen! Gibts da einen Befehl um das anzusteuern?


wär echt super wenn mir jemand helfen könnte!

schonmal danke im Vorraus
 
Split

Hi zu deinem ersten problem fällt mir sofor die Split(String,Trenzeichen) funktion ein ... benutzen tut man die so:

Dim Bla() as string
bla()=Split(<komplette zeile>,"|")


feddich
danach sieht es so aus:

bla(1) ist gleich 1
bla(2) ist gleich öhm ... na was da halt als nächstes stand
...

diese vierecke die der editor da zeigt sind wahrscheinlich CHR(11) (oder CHR(13))
also um eine zeile herauszubekommen kannst du nochmals Split verwenden nur diesmal mit CHR(11) als trennzeichen. hoffe geholfen zu haben
PS: () ist ein klammer auf und ein klammer zu zeichen hintereinander
PPS solltest du schon probleme haben überhaupt die datei in VB einzulesen meld dich
 
Danke danke danke!
hat funktioniert!:)
habs erst mit CHR(11) und dann mit CHR(15) ausprobiert, beides ging nicht! Dann hab ich die Datei im Hex-Editor geöffnet und da war das Zeichen "0A" was ja in Dezimal 10 ist, und mit CHR(10) hats dann auch geklappt!
Danke nochmal!

nur ein Problem hab ich jetzt noch! Das Programm das die Datei schreibt, schreibt die so alle 10sekunden neu, und wenn ich die so auslese wie ich es jetzt mach, kann das programm die datei nicht mehr schreiben und bringt fehlermeldungen (vorallem werden die werte in der datei nicht mehr geändert!) Ich lese die Datei z.Z. so aus:

intFileNum = FreeFile
Open adress For Input As intFileNum
Line Input #intFileNum, aTemp

"adress" ist der Pfad der Datei (z.B. C:\test\test.dat)
"aTemp" ist die erste Zeile der Datei die er ausgelesen hat,
die verarbeite ich dann so weiter
bTemp() = Split(aTemp, Chr(10))

cTemp() = Split(bTemp(0), "|")

Label1.Caption = cTemp(0)
Label2.Caption = cTemp(1)
Label3.Caption = cTemp(2)
Label4.Caption = cTemp(3)

dTemp() = Split(bTemp(1), "|")

Label5.Caption = dTemp(0)
Label6.Caption = dTemp(1)
Label7.Caption = dTemp(2)


Weißt du (oder jemand anderes) vielleicht wie ich die datei auslesen kann und das andere programm kann trotzdem drauf zugreifen?;)
Also ich brauch nur die erste Zeile der Datei (mehr hat sie auch nicht!) oder die ganze Datei!
Wär echt super wenn mir noch mal jemand helfen könnte!
 
Zuletzt bearbeitet:
JUHUUU!
habs selber hinbekommen! Die Lösung ist ja auch ganz einfach, wenn die Datei die ganze Zeit geöffnet ist dann kann das andere Programm nicht drauf zugreifen, also muß man die Datei gleich wieder schließen:
intFileNum = FreeFile
Open adress For Input As intFileNum
Line Input #intFileNum, aTemp
Close intFileNum

Jetzt gehts!
Danke nochmal
 
Sicherer

wenn du ganz sicher gehen willst kannst du einfach eine kopie der datei machen bevor du sie liest ... es ist nur eine frage der zeit bis sich die zeiten in denen dein prog und edonkey gleichzeitig auf die datei zugreifen überschneiden...
um dat dingen schneller zu machen kannst du alles in eine for schleife packen ... besser ist das
 
also ich habs jetzt so gemacht das der alle 2 sekunden die datei ausließt! Und eMule schreibt ungefähr im gleichen ryhtmus! Habs mal ne Zeit lang laufen lassen und es funktioniert ohne probleme! Aber danke für deine hilfe!

jetzt gestalte ich das ganze grade noch n bisschen, und ich würde das fenster gerne immer im vordergrund haben, also das ich es immer sehe! Das hab ich schonmal irgendwie gemacht, mit irgendeinem code aus nem e-book über VB! Kannst du mir da nochmal behilflich sein?;)
 
Zurück