| |
|
|
- page 1 - |
|
![KHR: 03.06.2008](.././../../i/a/61195088947efec5bab686.jpg) KHR | allô miteinander,
.
je voudrais une grand la quantité Meßdaten aufbereiten et ensuite comme Kurve(n) représenter. qui données volonté aus einer Dossier lire et dans Arrays zwischengelagert
Um stark flackernde Meßwerte dans einer übersichtlichen Kurve représenter trop peut voudrais je cet sur Durchschnittsbildung beruhigen cela ganze soll ensuite im fertigen Programme pour cinq zahlenreihen aller
Bisher fais je cela dans quelque chose so:
il y a 5 arrays avec 100 elementen Float-Variablen , chez beginn avec 0 pleine
un phrase Meßwerte wird lire, chaque Array erhält un Element eingetragen
Pour chaque Array wird qui Durchschnitt ermittelt,
qui jeweiligen Punkte volonté geplottet
et plus ca va avec dem prochain Datensatz Meßwerte.
là je bisher den Durchschnitt avec tandis que-Wend Schleifen errechne, wird alles unendlich lente. Selbst avec Profan2cpp dauert es Minuten jusqu'à qui Schirm vollgekritzelt ist.
ici la fois un entier court Auszug qui données comment vous vorliegen. réel avons qui Fichiers souvent sur dix- ou bien 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;-----;----- .... qui ersten beiden Spalten date et Zeit sommes uninteressant, seulement après gehts richtig à l'attaque.
avant lauter Frust sur mon Ideenlosigkeit hab je qui bisherigen Codes gelöscht ![](.././../../i/s/__upl_ext_1111498574.gif) Hat là quelqu'un ne concept, comment so quoi plus rapide aller pourrait??
suis arrêt malheureusement doch ne...aucune Programmierer mais seulement un Profan-Wurschtler. |
|
|
| Gruß Karl-Heinz WIN XP home/Pro / XPROFAN 11 / P2CPP ATMEL + BASCOM Fan | 03.06.2008 ▲ |
|
|
|
|
| |
|
- page 2 - |
|
![Thomas Freier: 04.06.2008](.././../../i/a/722278123487bd8c272307.gif) Thomas Freier | @Frank, ensuite spende uns doch s'il te plaît qui Mittelwert-Funktion einer Spalte (max., min. et somme avons wir oui déjà). et si possible une Funktion, qui le nombre qui avec Werten gefüllten Items einer Spalte ermittelt. |
|
|
| |
|
|
|
![iF: 04.06.2008](.././../../i/a/1.gif) | ici qui Source zum Bild...
Beinhaltet une Funktion createHPicByStats(data$,xx,yy) et liefert un Bildhandle qui Statistik zurück. qui Ausgabegrösse peux per Pixel xx et yy eingestellt volonté. avec qui Funktion peux on aussi zur Laufzeit per String solch un Diagramm erzeugen. Im Titel steht le nombre qui nécessaire Millisekunden.
Orginalcode: [...] ![](.././../../i/lnk.gif)
sans xpse KompilierenMarqueSéparationWINDOW 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
si je maintenant bedenke cela cet Methode aussi Spalte 1 et Spalte 2 mitberechnet (mais ici aucun payons findet) ensuite pourrait je mir présenter, dass avec kleiner Optimierung trop diesem Punkt peut-être sogar 4 jusqu'à 5 statt 6,8 Sekunden erreicht volonté peut.
@KHR: comment longtemps nécessaire qui Algo pour qui komplette Dossier? |
![](/intl/i/dw.gif) |
|
| |
|
|
|
![iF: 05.06.2008](.././../../i/a/1.gif) | hé typisch - sur meinem Notebook avec 2,4GHz sogar seulement 6.2 Sekunden, statt aussi meinem DesktopPC avec 3,2 GhZ 6.8 Sekunden. Hat encore quelqu'un nen 486dx4/100 herumzugammeln? ![](.././../../i/s/__upl_ext_1100084240.gif) |
|
|
| |
|
|
|
![Thomas Freier: 05.06.2008](.././../../i/a/722278123487bd8c272307.gif) Thomas Freier | un vite zusammengestrickter Test sur une doWhile- Boucle ist aussi pas justement lente (ici seulement pour 4 Reihen avec Mittelwert/sec et sur une *.dbf) . |
|
|
| |
|
|
|
![iF: 05.06.2008](.././../../i/a/1.gif) | Es sieht so aus comme si Du qui Skalen pas normalisierst - bekommst le reste fix incorporé?
et pour une Performancevergleich wäre es imho nötig alle 10 Spalten trop tenir compte de. (cela fait mon Beispiel aussi, quoique es chez date et Zeit naturellement seulement 0 evaluiert et utilise.)
alors Skalen normalisieren (x et y) et alle Spalten tenir compte de et ensuite: la durée preisgeben pour Codeperformancevergleich. |
|
|
| |
|
|
|
![Thomas Freier: 05.06.2008](.././../../i/a/722278123487bd8c272307.gif) Thomas Freier | @iF: aus Zeitgründen habe je es chez 6 Werten belassen. qui Hauptzeit wird beim Erstellen qui *.dbf verbraten. ici wäre un comparaison zum Listview ou bien GridBoxen encore intéressant. qui Skalierung, si je vous richtig hinbekommen habe, kostet ca. 300ms chez einer Endzeit de 3734 ms. sur meinem calculateur liegen beide Anwendungen sûrement sur gleicher Hauteur, si le weiteren 4 Werte en supplément venons. |
|
|
| |
|
|
|
![iF: 05.06.2008](.././../../i/a/1.gif) | Hm, irgendwas stimmt pas avec qui Normalisierung - qui muss automatisch bestimmt volonté pour chacun Spalte separat. Beispielsweise la hâte Vous schwarze ligne number dans qui Mitte, qui ist sozuagen pas sur cela ganze Y-Spektrum angezeigt. une change zur einer einstellbaren Ausgabegröße fehlt là aussi encore drin. ^ ^ |
|
|
| |
|
|
|
![Thomas Freier: 05.06.2008](.././../../i/a/722278123487bd8c272307.gif) Thomas Freier | @ iF: qui schwarze ligne number ist qui température (dans fme-300-test.txt ist max=64.8° - min=63.9°) . chez meiner Skalierung entspricht 1° = 13.9 Punkte. plus Ausschlag venez là pas raus. sa Temperaturanzeige allez de 44° jusqu'à 80°. là hilft seulement une filigranere Grafik comment chez dir. était mais pas mon but . |
|
|
| |
|
|
|
![iF: 06.06.2008](.././../../i/a/1.gif) | je sah grad le moi dessus den falschen Code posté hatte, cela était un Vorversion.
qui Orginalcode sous [...] était/ist cependant qui richtige.
j'ai den sans xpse-Code dessus korrigiert - maintenant stimmts avec Exe et Screenshot überein. ![](.././../../i/s/__upl_ext_1111498551.gif)
KHR hätte es auffallen doit. ![](.././../../i/s/eusa_think.gif) |
|
|
| |
|
|
| |
|
- page 3 - |
|
|
![KHR: 09.06.2008](.././../../i/a/61195088947efec5bab686.jpg) KHR | allô miteinander,
d'abord la fois vielen Dank pour Eure Mühe et sorry, qui je toter homme speile.
je suis momentan beruflich unterwegs et habe par ungünstige Umstände seulement très begrentzen Zugang zum Internet et trop meinem Notebokk, là es durable à qui Anlage eines Kunden hängt et zélé données mitschreiben doit
je melde mich wieder, si je wieder Normalzustand habe.
Dankeschön et belle Grüße |
|
|
| Gruß Karl-Heinz WIN XP home/Pro / XPROFAN 11 / P2CPP ATMEL + BASCOM Fan | 09.06.2008 ▲ |
|
|
|
|
![Thomas Freier: 11.06.2008](.././../../i/a/722278123487bd8c272307.gif) Thomas Freier | Hmm iF, irgendwie sommes qui Kurven de showdata2.exe pas nachvollziehbar. |
|
|
| |
|
|
|
![iF: 11.06.2008](.././../../i/a/1.gif) | Hat Dein Dateianhang irgendwas avec ShowData2.Exe trop 1faire? (Weil mir cela pas so scheint...)
Bezüglich pas nachvollziehbar - inwiefern?
qui en erzeugten Kurven [...] . |
|
|
| |
|
|