mp270 Script; Archiv auswerten

volker

Supermoderator
Teammitglied
Beiträge
5.805
Reaktionspunkte
1.027
Zuviel Werbung?
-> Hier kostenlos registrieren
hallo

ich bin hier am verzweifeln.
ich werte ein archiv aus um min,max und schnitt zu ermitteln.
die werte im archiv bewegen sich zwischen 3500 und 3900.
der max-wert und der schnitt wird auf tadellos ermittelt.
der min-wert bleibt permanet 9999. so wie ich ihn am anfang des scripts vorbelegt habe.

ich sehe keinen fehler. oder hab ich schon einen auf den augen?

Code:
Dim f,x,i1,i2,i3,zeile,wert,min,max,summe
min = 9999: max = -9999
Set f = CreateObject("filectl.file")
f.open "storage card2\ProCSVarc\MPU_Temp4_mr0.csv", 1, 1
Do While f.eof <> true
	zeile = f.LineInputString
	If Mid(zeile,2,8)="MPU_Temp" Then
		x=x+1: i1=InStr(zeile,";"): i2=InStr(i1+1,zeile,";"): i3=InStr(i2+1,zeile,";")
		wert=Mid(zeile,i2+1,i3-i2-1)
		If wert < min Then min = wert
		If wert > max Then max = wert
		summe = summe + wert/10
	End If
Loop
f.Close
MPU_Temp_4_mr_min_arch=min: MPU_Temp_4_mr_max_arch=max: MPU_Temp_4_mr_mittel_arch=summe/x
 
Hallo Volker,

ich habe deinen Programm-Code mal kurz überflogen und mir
ist die folgende Zeile aufgefallen.

Code:
wert=Mid(zeile,i2+1,i3-i2-1)

Hier wird der Variabeln 'wert' ein Teil aus der eingelesenen Zeile
als "String" zugewiesen. (wegen der MID-Funktion)

Ich denke du musst diese Zeile um ein Val() erweitern.
Code:
wert=Val(Mid(zeile,i2+1,i3-i2-1))
Hierdurch wird dann der Variabeln 'wert' die eigentliche Zahl '3500'
und nicht die Zeichenfolge "3500" zugewiesen.

Ich hab das mit VB6 getestet und das 'Val' behebt das Problem.

Gruss
Guido
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Guido schrieb:
Hallo Volker,
ich habe deinen Programm-Code mal kurz überflogen und mir
ist die folgende Zeile aufgefallen.
Code:
wert=Mid(zeile,i2+1,i3-i2-1)
Hier wird der Variabeln 'wert' ein Teil aus der eingelesenen Zeile
als "String" zugewiesen. (wegen der MID-Funktion)

Ich denke du musst diese Zeile um ein Val() erweitern.
Code:
wert=Val(Mid(zeile,i2+1,i3-i2-1))
Gruss
Guido

imho:
bei vbscript oder vb vor der .net muss eine var nicht für den typ deklariert werden.
d.h. ein string mit inhalt von 754 kann ohne probs als 754 int behandelt werden.

und wenn dem so wäre, warum funktioniert das mit dem max-wert und dem schnitt(summe)-wert?

aus dem wert wird die var zugewiesen. und ich sehe hier keinen unterschied zwischen min und max.
Code:
      wert=Mid(zeile,i2+1,i3-i2-1) 
      If wert < min Then min = wert 
      If wert > max Then max = wert

ich werde das script mal testweise für ein pc-system umschreiben und mal testen.

auf jeden fall finde ich das sehr merkwürdig.
oder ich übersehe irgend etwas. :cry:
 
habe das ganze mal auf dem pc getestet.
das gleiche problem.

wenn ich die variable wert nicht nur temporär deklariere, sondern als var (keine steuerung) definiere funktioniert es.

ist mir zwar nicht klar warum, aber was solls.

werd das montag mal auf das mp übertragen.
 
Zurück
Oben