Hallo zusammen,
kann jemand das hier beschriebene Script in C / C++ umsetzen?
http://www.wer-weiss-was.de/cgi-bin/forum/showarticl…
würde mit dem script gerne einen benchmarktest durchführen.
Gruß
Phillip
Hallo zusammen,
kann jemand das hier beschriebene Script in C / C++ umsetzen?
http://www.wer-weiss-was.de/cgi-bin/forum/showarticl…
würde mit dem script gerne einen benchmarktest durchführen.
Gruß
Phillip
Hallo
kann jemand das hier beschriebene Script in C / C++ umsetzen?
http://www.wer-weiss-was.de/cgi-bin/forum/showarticl…
würde mit dem script gerne einen benchmarktest durchführen.
mach ma (als cpp/c++ kompilieren):
[converter.cxx]
#include
#include
#include
int main(int argc, char\*argv[])
{
const BUFLEN=0x100000, MAXTOKEN=0x100000;
char \*buffer=new char[BUFLEN+1];
char \*\*tok=new char\*[MAXTOKEN], t\_head[256];
char \*names[] = { "testimp.csv", "testexp1.csv", "testexp2.csv" } ;
FILE\* i\_file = fopen(names[0], "rt"); if(!i\_file) { perror(names[0]); exit(-1); }
FILE\* k\_file = fopen(names[1], "wt"); if(!k\_file) { perror(names[1]); exit(-1); }
FILE\* t\_file = fopen(names[2], "wt"); if(!t\_file) { perror(names[2]); exit(-1); }
while( fgets(buffer, BUFLEN, i\_file) != NULL ) {
if( strncmp(buffer, "KO;", 3) == 0 ) { // KO found
fprintf(k\_file,"NULL%s\n", buffer+3);
}
if( strncmp(buffer, "T;", 2) == 0 ) { // T found
int ntok=0;
char \*p=tok[ntok]=buffer;
// start the tokenizer
while(\*p) {
while(\*p && \*p!=';') ++p;
if(\*p) { tok[++ntok] = p+1; \*p = '\0'; ++p; }
}
int pos=3,cnt=0;
// write record
sprintf(t\_head,"NULL;%s",tok[2]);
while(pos Grüße
CMБ
Hallo CMБ,
habe gerade probiert dein Programm zu compilieren:
pg@ubuntu:/var/www/test$ g++ --version
g++ (GCC) 4.1.2 20060928 (prerelease) (Ubuntu 4.1.1-13ubuntu5)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
pg@ubuntu:/var/www/test$ g++ import\_cpp.cpp
import\_cpp.cpp:42:2: warning: no newline at end of file
import\_cpp.cpp: In function âint main(int, char\*\*)â:
import\_cpp.cpp:7: error: ISO C++ forbids declaration of âBUFLENâ with no type
import\_cpp.cpp:7: error: ISO C++ forbids declaration of âMAXTOKENâ with no type
pg@ubuntu:/var/www/test$
mache ich beim compilieren irgendetwas falsch?
Gruß
Phillip
Hallo
mach ma (als cpp/c++ kompilieren):
arbeitet tadelos auf dem Windoof system, compiliert mit VisualStudio KonsolenAnwendung leeres Project
kann doch so einfach sein das leben, ich glaub ich sollte nicht alles pur in OOP proggen sieht so kurz und einfach aus und funktioniert dennoch
Hallo
output export1
NULL;2527979;C;TGF;DFD;;C;;;;;;;;;;;;;H;;;
NULL;2527979;C;TGF;DFD;;C;;;;;;;;;;;;;H;;;
NULL;2527979;C;TGF;DFD;;C;;;;;;;;;;;;;H;;;
NULL;2527979;C;TGF;DFD;;C;;;;;;;;;;;;;H;;;
NULL;2527979;C;TGF;DFD;;C;;;;;;;;;;;;;H;;;
ist keine laufende nummer drinne nach dem 2 Feld
bezogen auf
File 2:
Alle Zeilen die mit T anfangen.
Es sollen immer Nur Feld 3, eine laufende nr und alle folgenden Felder in 5er blöcken
Beginnen muss die Zeile mit NULL;
Soll Ausgabe:
NULL;2527979;1;2527979;;TGF;DFD;1
NULL;2527979;2;2;3;4;a;b
NULL;2527979;3;c;s;;;
NULL;2527979;4;2527979;;TGF;DFD;1
NULL;2527979;5;2;3;4;a;b
NULL;2527979;6;c;s;;;
dein output export2
NULL;2527979;1;2527979;;TGF;DFD;1
NULL;2527979;2;2;3;4;a;b
NULL;2527979;3;c;s;;;
NULL;2527979;1;2527979;;TGF;DFD;1
NULL;2527979;2;2;3;4;a;b
NULL;2527979;3;c;s;;;
nur zur info (will ja nur helfen)
Hallo nochmal,
ich habe die C-version nochmal korrigiert. Sie
läßt sich jetzt auch mit gcc 4.x übersetzen
(const unsigned) und das \n ist auch raus.
Allerdings denke ich, dass sich die lfd. Nr. in #2
auf den aktuellen Block bezieht und demnach so
sein soll.
$> gcc -O3 -o cconverter cconverter.cxx -lstdc++
$> time ./cconverter
#include
#include
#include
int main(int argc, char\*argv[])
{
const unsigned BUFLEN=0x100000, MAXTOKEN=0x100000;
char \*buffer=new char[BUFLEN+1];
char \*\*tok=new char\*[MAXTOKEN], t\_head[256];
char \*names[] = { "testimp.csv", "testexp1.csv", "testexp2.csv" } ;
FILE\* i\_file = fopen(names[0], "rt"); if(!i\_file) { perror(names[0]); exit(-1); }
FILE\* k\_file = fopen(names[1], "wt"); if(!k\_file) { perror(names[1]); exit(-1); }
FILE\* t\_file = fopen(names[2], "wt"); if(!t\_file) { perror(names[2]); exit(-1); }
while( fgets(buffer, BUFLEN, i\_file) != NULL ) {
if( strncmp(buffer, "KO;", 3) == 0 ) { // KO found
fprintf(k\_file,"NULL%s", buffer+3);
}
if( strncmp(buffer, "T;", 2) == 0 ) { // T found
int ntok=0;
char \*p=tok[ntok]=buffer;
// start the tokenizer
while(\*p) {
while(\*p && \*p!=';') ++p;
if(\*p) { tok[++ntok] = p+1; \*p = '\0'; ++p; }
}
int pos=3,cnt=0;
// write record
sprintf(t\_head,"NULL;%s",tok[2]);
while(pos
> kann jemand das hier beschriebene Script in C / C++ umsetzen?
>
> http://www.wer-weiss-was.de/cgi-bin/forum/showarticle.fpl?ArtikelID=4272247
>
> würde mit dem script gerne einen benchmarktest durchführen.
>
> Gruß
> Phillip