Stránka: 1 z 1
| [ Príspevkov: 13 ] | |
Autor | Správa |
---|
Registrovaný: 06.11.09 Prihlásený: 06.11.11 Príspevky: 72 Témy: 25 | 25 |
Dobry den,
vedel by mi prosim vas niekto poradit, ako spravit textovy subor z dat, ktore su ulozene v bufferi "Data". Pouzil som tento prikaz, ktory nacitava data zo snimaca. Dakujem
ReadFile(
hCom, // Handle portu, z ktorého čítame
&Data, // Pointer(adresa) na buffer, kam ukladáme prijaté dáta
1, // Počet bytov, na ktoré čakáme
&Pocet, // Pointer(adresa) na skutočný počet prijatých dát
NULL); // Musí byť NULL
|
|
Registrovaný: 13.11.07 Prihlásený: 20.08.16 Príspevky: 1702 Témy: 0 | 0 |
Musíš vytvoriť (otvoriť) textový súbor (funkcia fopen) a potom použiješ niečo ako fsprintf(subor, "%i\n", Data[0]); a zatvoríš ten súbor. Ak chceš používať WinAPI, tak to otvorenie súboru a zápis dát bude vyzerať inak (nemám Windows a tak sa mi to zisťovať nechce) a aj na zmenu bajtu na číslo použiješ nejakú inú funkciu (aj vo WinAPI sú na to nejaké funkcie, prípadne môžeš použiť nejakú zo štandardných C funkcií, alebo si môžeš vytvoriť vlastnú funkciu).
|
|
Registrovaný: 06.11.09 Prihlásený: 06.11.11 Príspevky: 72 Témy: 25 | 25 |
chrono píše: Musíš vytvoriť (otvoriť) textový súbor (funkcia fopen) a potom použiješ niečo ako fsprintf(subor, "%i\n", Data[0]); a zatvoríš ten súbor. Ak chceš používať WinAPI, tak to otvorenie súboru a zápis dát bude vyzerať inak (nemám Windows a tak sa mi to zisťovať nechce) a aj na zmenu bajtu na číslo použiješ nejakú inú funkciu (aj vo WinAPI sú na to nejaké funkcie, prípadne môžeš použiť nejakú zo štandardných C funkcií, alebo si môžeš vytvoriť vlastnú funkciu).
Ved fprintf ide aj vo WinAPI podla mna a preco Data[0]??? A nevies mi poradit, ako by som mohol spravit, aby mi to ukladalo do textovych suborov postupne, teda vzdy ked prijme nejake data, tak sa ulozia do druheho suboru s inym nazvom? Napr. test1, test2,... A problem je aj v tom, ze mi to vypisuje pri tom fprintf chybu: invalid types 'BYTE[int]' for array subscript
a aj chybu v int main. Lebo to Data je typ BYTE.
|
|
Registrovaný: 02.11.07 Prihlásený: 18.03.15 Príspevky: 470 Témy: 22 | 22 Bydlisko: Zilinska Un... |
samozrejm ze fprintf je aj vo wine, zle si pochopil chroma. Dalej, jednoducho ta funkcia ti cez adresu vracia neaku hodnotu - ratazec, tak jednoducho ju kontrolujuj v cykle v neakych intervaloch, alebo ked ty chces, kontroluj ci ti zmeni obsah, ak ano, tak sa vytvori new subor a tam sa to zapise, nic zlozite. dalej to BYTE, chyba ti asi neaka WinAPI kniznicam lebo BYTE nie je standardny multiplatformovy typ, v C++ sa standardne pouziva "char" ako bytove pole, tak si vytvor to, ked mu priradis typ BYTE, tak to pojde, myslim ze BYTE je iba nazov pre char. Neviem isto bo nemam windows.
_________________ Notebook: HP EliteBook 8740w
You can see my work in my www |
|
Registrovaný: 06.11.09 Prihlásený: 06.11.11 Príspevky: 72 Témy: 25 | 25 |
johny3212 píše: samozrejm ze fprintf je aj vo wine, zle si pochopil chroma. Dalej, jednoducho ta funkcia ti cez adresu vracia neaku hodnotu - ratazec, tak jednoducho ju kontrolujuj v cykle v neakych intervaloch, alebo ked ty chces, kontroluj ci ti zmeni obsah, ak ano, tak sa vytvori new subor a tam sa to zapise, nic zlozite. dalej to BYTE, chyba ti asi neaka WinAPI kniznicam lebo BYTE nie je standardny multiplatformovy typ, v C++ sa standardne pouziva "char" ako bytove pole, tak si vytvor to, ked mu priradis typ BYTE, tak to pojde, myslim ze BYTE je iba nazov pre char. Neviem isto bo nemam windows.
Ale vsak fprintf nevracia nic. Som pozeral, ze by sa to dalo spravit, ze by som dal ten pointer na textovy subor rovny dacomu co by znamenalo, ze je tam jedna hodnota. Daco ako pointer==NULL, ale namiesto NULL, tam dam pocet bitov, ktore prijmem a spravim z toho cyklus. Tak by sa to dalo nie? A tomu druhemu nejak nechapem. Mohol by si mi to prosim ta vysvetlit na nejakom priklade?
|
|
Registrovaný: 02.11.07 Prihlásený: 18.03.15 Príspevky: 470 Témy: 22 | 22 Bydlisko: Zilinska Un... |
jeskove voci, ja som myslel ta tvoja funkcia ReadFile ti vracia cely retazec znakov cez adresu na tu premennu Data, ti ju naplni, neviem co viac tam chces riesit a ten retazec potom zapises do suboru.
dalej:
Kód: //toto cez tie winAPI BYTE digest[14] = {0}; //takto sa zapisuje standartne cez char unsigned char data[14] = { 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8}
//a je jedno co pouzijes a ak si nie si isty mozes ich pretypovat
( BYTE*) data ( char*) digest
//jednoducho BYTE = CHAR
chapes? alebo tam hod ten include ktory ma v sebe BYTE, ja neviem ktory to je, ale sak na googl je o tom asi tisic linkov, tak najskor hladaj, az potom pis.
_________________ Notebook: HP EliteBook 8740w
You can see my work in my www |
|
Registrovaný: 13.11.07 Prihlásený: 20.08.16 Príspevky: 1702 Témy: 0 | 0 |
Stačí include súboru windows.h a tie pomocne typy ako napr. BYTE by mali byt nadefinované (a ak sa nemýlim tak je to len typedef na unsigned char).
fprintf sa tam použiť dá, ale nie je to súčasť WinAPI (je to v štandardnej C knižnici). Čiže ak ti nevadí, že sa použije ďalší dll súbor, môžeš použiť aj fprintf. Ak by si ale chcel, aby ten tvoj program používal minimum iných knižníc, tak môžeš použiť "čisté" WinAPI.
A keď je data len BYTE, tak použiješ data a nie data[0] (myslel som, že to je pole).
|
|
Registrovaný: 02.11.07 Prihlásený: 18.03.15 Príspevky: 470 Témy: 22 | 22 Bydlisko: Zilinska Un... |
jjj aso to je typedef na unsigned char, ale nemam windows, tak som hadal.
a s tym polom to je druha vec. psm dostuduj si ukazovatele. LEbo ak dobre vies, tak pole je ukazovatel
Kód: char pole1[ ] == char* pole2 != char pole3 char pole4[ ][ ] == char** pole5
a das pole1 == pole2 = &pole3 //prva adresa
ak chces naplnit hodnotu 3. *(pole1+2) == pole1[3] = 'a' *(pole2+2) == pole2[3] = 'a'
pole3 = 'a' //nie je pole
resp. char* pole5 = new char[10] //jednorozmerne char** pole6 = new char* [10] + cyklus // mas to zaalokovane ako 2-rozmerne
je len ze ci si vedel ze pole je ukazovatel v skutocnosti . Takze ked funkcia ocakava ukazocatel a ty tam davas pole char pole[10], tak tam nedas "&pole" ale das tam "pole" - co je 1.adresa na ktoru sa ukazuje.
_________________ Notebook: HP EliteBook 8740w
You can see my work in my www |
|
Registrovaný: 06.11.09 Prihlásený: 06.11.11 Príspevky: 72 Témy: 25 | 25 |
Diky za rady. Uz som pokrocil trosku dalej. Len neviem stale ako spravit, aby mi to zapisovalo tie prijate data, kazde do ineho txt. Teda aku tam dat podmienku a ako tam dat aby mi to cilsovalo tie textaky. Sorry, ak je to moc trivialne, ale v C-cku som nerobil uz dlhe roky a neviem ani poriadne pod cim to hladat.
FILE *cielovazlozka;
const time_t timer = time(NULL);
cielovazlozka = fopen("idcislo.txt", "w");
if (cielovazlozka==NULL) {
printf("Error: nie je vytvoreny subor na zapisovanie.\n");
return 0;
}
else {
fprintf(cielovazlozka, "%i\t", Data);
fprintf(cielovazlozka, "%s\n", ctime(&timer));
fclose(cielovazlozka);
}
|
|
Registrovaný: 13.11.07 Prihlásený: 20.08.16 Príspevky: 1702 Témy: 0 | 0 |
A ako sa vie, kedy sa má vytvoriť iný súbor? (lebo pochybujem, že chceš do každého súboru uložiť jediný bajt)
|
|
Registrovaný: 06.11.09 Prihlásený: 06.11.11 Príspevky: 72 Témy: 25 | 25 |
chrono píše: A ako sa vie, kedy sa má vytvoriť iný súbor? (lebo pochybujem, že chceš do každého súboru uložiť jediný bajt)
No to este nemam spravne nastavene hodnoty, lebo ich este neviem, ale bude to prijmat iba nejake cislo. A rozmyslal som, ze nebude zrovna najlespie riesenie ukladat tie cisla kazde do ineho suboru, ale do toho isteho suboru a potom po urcitom pocte zapisanych cisiel sa to vymaze. Ale potom to musim filewatcherom, ktory pevezme ten subor vlozit na vstup databazovej API. Tak neviem co je lepsie, lebo som s tym este nikdy nerobil.
|
|
Registrovaný: 13.11.07 Prihlásený: 20.08.16 Príspevky: 1702 Témy: 0 | 0 |
Najskôr sa musíš rozhodnúť čo vlastne chceš a potom to môžeš riešiť.
|
|
Registrovaný: 06.11.09 Prihlásený: 06.11.11 Príspevky: 72 Témy: 25 | 25 |
chrono píše: Najskôr sa musíš rozhodnúť čo vlastne chceš a potom to môžeš riešiť.
Vsak ja viem co chcem, ale neviem ako to vyriesit. A myslim, ze to z toho vyplynulo. Alebo som to napisal az tak nezrozumitelne?
|
|
Stránka: 1 z 1
| [ Príspevkov: 13 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| v Služby a webstránky | 1 | 300 | 22.11.2013 11:19 killer | | v Ostatné | 5 | 779 | 07.08.2010 21:54 shaggy | | v Ostatné | 3 | 617 | 05.10.2008 16:11 JanoF | | v Delphi, Visual Basic | 5 | 669 | 27.03.2012 19:50 Fico | | v Ostatné programy | 4 | 727 | 25.06.2008 16:37 Blackshadow | | v HTML, XHTML, XML, CSS | 11 | 1031 | 12.05.2009 15:01 pilná lama glama | | v Ostatné programy | 1 | 911 | 22.12.2006 10:38 Shit | | v PHP, ASP | 1 | 605 | 04.05.2010 22:22 stenley | | v PHP, ASP | 24 | 1236 | 10.07.2008 12:06 rooobertek | | v HTML, XHTML, XML, CSS | 2 | 507 | 20.07.2009 14:15 masterpeter | | v PHP, ASP | 8 | 986 | 01.03.2007 17:25 javo | | v Ostatné programy | 0 | 350 | 11.02.2016 21:05 velver | | v Delphi, Visual Basic | 1 | 867 | 01.01.2010 12:08 B.A.X.O | | v PHP, ASP | 3 | 486 | 28.05.2009 9:12 p360t | | v HTML, XHTML, XML, CSS | 4 | 499 | 26.02.2011 15:12 camo | | v PHP, ASP | 21 | 1083 | 04.11.2008 20:33 dadmtb |
|