| |
|
|
- Página 1 - |
|
KHR | ¡Hola miteinander,
.
Yo möchte una große Menge Meßdaten aufbereiten y luego como Kurve(n) darstellen. El Daten voluntad de uno Expediente eingelesen y Arrays zwischengelagert
Um stark flackernde Meßwerte en uno übersichtlichen Kurve darstellen a puede möchte Yo esta encima Durchschnittsbildung beruhigen Das todo se entonces en el fertigen Programa para fünf zahlenreihen ir
Bisher mache Yo el en algo así:
Lo son 5 arrays con 100 elementen Float-Variables , en beginn con 0 gefüllt
Ein Satz Meßwerte se eingelesen, Jedes Array erhält una Element eingetragen
Für cada Array se el Durchschnitt ermittelt,
el jeweiligen Punkte voluntad geplottet
y más es con el nächsten Datensatz Meßwerte.
Desde que bisher el Durchschnitt con mientras que-wend Schleifen errechne, se alles unendlich langsam. Selbst con Profano2cpp dauert lo Minuten a el Schirm vollgekritzelt es.
Hier veces una bastante corto Auszug el Daten como ellos vorliegen. Real haben el Archivos oft encima zehn- oder gar zwanzigtausend Datensätze (Zeilen)
25.07.2007;08:22:53;1874;63.3;0.019387;0.023140;0.024151;0.022312;-----;----- 25.07.2007;08:22:54;1871;63.3;0.028538;0.022725;0.025337;0.022793;-----;----- 25.07.2007;08:22:55;1914;63.3;0.024311;0.023610;0.022366;0.022739;-----;----- 25.07.2007;08:22:56;1889;63.3;0.021887;0.023453;0.019952;0.022303;-----;----- 25.07.2007;08:22:57;1895;63.3;0.027712;0.023644;0.021144;0.022193;-----;----- 25.07.2007;08:22:58;1902;63.3;0.023383;0.023765;0.022752;0.022195;-----;----- 25.07.2007;08:22:59;1891;63.3;0.026178;0.023538;0.022319;0.022224;-----;----- 25.07.2007;08:23:00;1912;63.3;0.024255;0.023965;0.021904;0.022195;-----;----- 25.07.2007;08:23:01;1898;63.3;0.021041;0.023673;0.024442;0.022237;-----;----- 25.07.2007;08:23:02;1895;63.3;0.024243;0.023550;0.022202;0.022322;-----;----- 25.07.2007;08:23:03;1919;63.3;0.029875;0.023874;0.022494;0.022521;-----;----- 25.07.2007;08:23:04;1930;63.3;0.027768;0.024126;0.022018;0.022461;-----;----- 25.07.2007;08:23:05;1914;63.3;0.020411;0.023905;0.020469;0.022334;-----;----- 25.07.2007;08:23:06;1915;63.3;0.027465;0.023837;0.023016;0.022474;-----;----- 25.07.2007;08:23:07;1924;63.3;0.020727;0.023959;0.023631;0.022536;-----;----- 25.07.2007;08:23:08;1891;63.3;0.020876;0.023436;0.021933;0.022374;-----;----- 25.07.2007;08:23:09;1867;63.3;0.020627;0.023159;0.020591;0.022087;-----;----- .... El ersten beiden Spalten Datum y Tiempo son uninteressant, sólo danach gehts correcto los.
Vor lauter Frust encima mi Ideenlosigkeit tener Yo el reciente Codes gelöscht Sombrero como alguien ne Concepto, como así qué más rápido ir podría??
Bin sólo desafortunadamente doch kein Programmierer pero sólo una Profano-Wurschtler. |
|
|
| Gruß Karl-Heinz WIN XP home/Pro / XPROFAN 11 / P2CPP ATMEL + BASCOM Fan | 03.06.2008 ▲ |
|
|
|
|
| |
|
- Página 2 - |
|
Thomas Freier | @Franco, entonces spende uns pero por favor el Mittelwert-Función uno Spalte (max., min. y Summe haben wir sí ya). Und si posible una Función, el el número el con Werten gefüllten Items uno Spalte ermittelt. |
|
|
| |
|
|
|
| Hier el Source para Bild...
Beinhaltet una Función createHPicByStats(data$,xx,yy) y liefert una Bildhandle el Statistik zurück. El Ausgabegrösse kann por Pixel xx y yy eingestellt voluntad. Mit el Función puede ser auch a Laufzeit por String solch una Diagramm erzeugen. Im Titel es el número el benötigten Millisekunden.
Orginalcode: [...]
Ohne xpse KompilierenMarcaSeparaciónWINDOW 100,100 - 700,500
CLS $888888
var TME&=&GETTICKCOUNT
var HPIC&=CREATEHPICBYSTATS(FILE_GET_CONTENTS(fme-300-test.txt),600,420)
SETTEXT %HWND,STR$(&GETTICKCOUNT-TME&)+ ms
DRAWPIC HPIC&,10,10;0
USERMESSAGES $0014
WHILE 1
WAITINPUT
ENDWHILE
end
proc CREATEHPICBYSTATS
PARAMETERS S$,XX&,YY&
DECLARE LN$[],HDR$[],ENTI$[]
LN$[]=EXPLODE(S$+
,
)
var C&=SIZEOF(LN$[])
HDR$[]=EXPLODE(LN$[0],;)
var HDRC&=SIZEOF(HDR$[])
var F!=0
var F2!=0
DECLARE VMIN![HDRC&],VMAX![HDRC&],V![HDRC&,C&],VMM![HDRC&],COL&[IF(HDRC&>7,HDRC&,8)],COLB&[HDRC&],OLDF![HDRC&]
MAT VMIN![]=999999999999999
MAT VMAX![]=-999999999999999
DEC HDRC&
DEC C&
COL&[0]=$FF0000
COL&[1]=$00FF00
COL&[2]=$0000FF
COL&[3]=$880000
COL&[4]=$008800
COL&[5]=$000088
COL&[6]=$FF8800
COL&[7]=$00FF88
var CL&=0
WHILE 1
INC CL&
IFNOT CL&<C&
BREAK
ENDIF
ENTI$[]=EXPLODE(LN$[CL&],;)
SETSIZE ENTI$[],HDRC&+1
WHILELOOP 0,HDRC&
F!=VAL(ENTI$[&LOOP])
V![&LOOP,CL&]=F!
IF VMIN![&LOOP]>F!
VMIN![&LOOP]=F!
ENDIF
IF VMAX![&LOOP]<F!
VMAX![&LOOP]=F!
ENDIF
ENDWHILE
ENDWHILE
var I&=0
var A!=0
WHILELOOP 0,HDRC&
VMM![&LOOP]=(VMAX![&LOOP]-VMIN![&LOOP])
A!=V![&LOOP,1]
F!=VMM![&LOOP]
IF F!=0
CONTINUE
ENDIF
F2!=A!-VMIN![&LOOP]
IF F2!=0
CONTINUE
ENDIF
OLDF![&LOOP]=(F2!/F!*YY&)
ENDWHILE
var Y!=0
var HOP!=C&/XX&
var XH!=1
var YYHOP!=YY&*0.1
var X&=0
var HPIC&=CREATE(hNewPic,XX&,YY&,$FFFFFF)
STARTPAINT HPIC&
WHILE 1
INC X&
WHILELOOP 0,HDRC&
F!=VMM![&LOOP]
IFNOT F!=0
F2!=V![&LOOP,XH!]-VMIN![&LOOP]
IFNOT F2!=0
F!=(OLDF![&LOOP]*0.9)+(F2!/F!*YYHOP!)
ELSE
F!=(OLDF![&LOOP]*0.9)
ENDIF
USEPEN 0,0,COL&[&LOOP]
LINE (X&-1),(YY&-OLDF![&LOOP]) - (X&),(YY&-F!)
OLDF![&LOOP]=F!
ENDIF
ENDWHILE
XH!=XH!+HOP!
IF XH!>C&
BREAK
ENDIF
ENDWHILE
ENDPAINT
RETURN HPIC&
endproc
proc FILE_GET_CONTENTS
PARAMETERS FLE$
var B&=FILESIZE(FLE$)
IF B&<1
RETURN
ENDIF
DECLARE MEM#
DIM MEM#,B&
var R&=BLOCKREAD(FLE$,MEM#,0,B&)
var S$=CHAR$(MEM#,0,R&)
DISPOSE MEM#
RETURN S$
endproc
proc FILE_PUT_CONTENTS
PARAMETERS FLE$,S$
var L&=LEN(S$)
IF L&=0
var FH&=ASSIGN(FLE$)
REWRITE FH&
CLOSE FH&
ASSIGN FH&,
RETURN
ENDIF
DECLARE MEM#
DIM MEM#,L&+1
STRING MEM#,0=S$
BLOCKWRITE FLE$,MEM#,0,L&
DISPOSE MEM#
endproc
proc RGB.MIX
PARAMETERS COL1&,COL2&,TRANSL!
RETURN RGB(GETRVALUE(COL1&)*(1-TRANSL!)+GETRVALUE(COL2&)*(TRANSL!),GETGVALUE(COL1&)*(1-TRANSL!)+GETGVALUE(COL2&)*(TRANSL!),GETBVALUE(COL1&)*(1-TRANSL!)+GETBVALUE(COL2&)*(< TRANSL! ))
ENDPROC
end
Wenn Yo ahora bedenke el esta Método auch Spalte 1 y Spalte 2 mitberechnet (aber hier no Pagar findet) entonces podría Yo vorstellen, dass con kleiner Optimierung a diesem Punkt tal vez incluso 4 a 5 en lugar de 6,8 Sekunden erreicht voluntad puede.
@KHR: Como largo benötigt el Algo para el komplette Expediente? |
|
|
| |
|
|
|
| He typisch - en mi Notebook con 2,4GHz incluso sólo 6.2 Sekunden, en lugar de como mi DesktopPC con 3,2 GhZ 6.8 Sekunden. Sombrero todavía alguien nen 486dx4/100 herumzugammeln? |
|
|
| |
|
|
|
Thomas Freier | Ein rápidamente zusammengestrickter Test una doWhile- Bucle es auch no gerade langsam (hier sólo para 4 Reihen con Mittelwert/sec y una *.dbf) . |
|
|
| |
|
|
|
| Lo sieht así de como si Usted el Skalen no normalisierst - bekommst el todavía fix instalado?
Und para una Performancevergleich wäre lo imho nötig todos 10 Spalten a beachten. (Das macht mein Ejemplo auch, obwohl lo en Datum y Tiempo natürlich sólo 0 evaluiert y nutzt.)
Also Skalen normalisieren (x y y) y todos Spalten beachten y luego: Dauer preisgeben para Codeperformancevergleich. |
|
|
| |
|
|
|
Thomas Freier | @IF: de Zeitgründen Yo lo en 6 Werten belassen. El Hauptzeit se beim Erstellen el *.dbf verbraten. Hier wäre una Vergleich para Listview oder GridBoxen todavía interessant. El Skalierung, si yo ellos correcto hinbekommen habe, kostet ca. 300ms en uno Endzeit de 3734 ms. Auf mi Rechner mentira beide Anwendungen sicher en gleicher Höhe, si la más 4 Werte dazu kommen. |
|
|
| |
|
|
|
| Hm, algo stimmt no con el Normalisierung - el muss automáticamente determinado voluntad para jede Spalte separat. Por ejemplo hast Es usted un schwarze Linie en el Mitte, el es sozuagen no el todo Y-Spektrum adecuado. Un Umrechnung a uno einstellbaren Ausgabegröße fehlt como auch todavía drin. ^ ^ |
|
|
| |
|
|
|
Thomas Freier | @ IF: el schwarze Linie Es el Temperatur (en fme-300-test.txt es max=64.8° - min=63.9°) . En meiner Skalierung entspricht 1° = 13.9 Punkte. Más Ausschlag kommt como no fuera. Seine Temperaturanzeige va de 44° a 80°. Como hilft sólo una filigranere Grafik como en dir. War pero no mein Ziel . |
|
|
| |
|
|
|
| Yo sah grad el Yo oben el falschen Code Nuevo hatte, el fue un Vorversion.
Der Orginalcode bajo [...] war/es sin embargo el richtige.
Yo habe el sin xpse-Code oben korrigiert - ahora stimmts con Exe y Screenshot überein.
KHR hätte lo auffallen necesario. |
|
|
| |
|
|
| |
|
- Página 3 - |
|
|
KHR | ¡Hola miteinander,
zuerst veces vielen Dank para Eure Mühe y sorry, Yo toter Mann speile.
Yo bin momentan beruflich unterwegs y habe por ungünstige Umstände sólo muy begrentzen Zugang para Internet y a mi Notebokk, como lo dauernd a el Anlage uno Kunden hängt y eifrig Daten mitschreiben muß
Yo melde mich otra vez, si yo otra vez Normalzustand habe.
Dankeschön y schöne Grüße |
|
|
| Gruß Karl-Heinz WIN XP home/Pro / XPROFAN 11 / P2CPP ATMEL + BASCOM Fan | 09.06.2008 ▲ |
|
|
|
|
Thomas Freier | Hmm IF, irgendwie son el Kurven de showdata2.exe no nachvollziehbar. |
|
|
| |
|
|
|
| Sombrero Su Dateianhang algo con ShowData2.Exe a tun? (Weil me no así scheint...)
Bezüglich no nachvollziehbar - inwiefern?
El su erzeugten Kurven [...] . |
|
|
| |
|
|