Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

czyszczenie tablicy...

XimmhR 12 Cze 2005 23:43 867 1
  • #1 12 Cze 2005 23:43
    XimmhR
    Poziom 10  

    Witam!

    Mam zmienna buffor i jak urządzenie jest podłączone to co pomiar zmienia mi zawarotśc tej tablicy jak odczyta, a jak odłącze urzadzenie i program dalej działą czyli chce pobierac ale nic nie przychodzi to wypisuje mi ostatni zapisany odczyt do tej tablicy jak ją opóróżnić ? Oto czesc tego kodu odp. za odczyt i zapis:

    WriteFile(hFile1,&bajt,1,&NumberOfBytesWritten,NULL);
    printf ("Wyslano jeden bajt na port COM1\n");

    Sleep(1000);
    ClearCommError(hFile1,&Errors, &Stat);
    printf ("Pomiar: %d\n", k);
    ReadFile(hFile1,bufor1,Stat.cbInQue,&NumberOfBytesRead,NULL);
    bufor1[NumberOfBytesRead - 1] = '\0';
    strcpy(n_bufor1, bufor1);
    printf("%s\n",n_bufor1);

    Dodano po 5 [minuty]:

    aha mam jeszcze pytanie, jeżeli w trakcie pomiarów odłącze urządzenie to program działą i zapisuje mi ten ostatni pomiar, jeżeli uruchomie program, bez podłączonego miernika też działa z tym że nic nie zczytuje bo nic nie przychodzi - logiczne, próbowałem zmodyfikowac powyzszy kod tak, że jezeli nic nie przyjdzie to żeby wyświetlał np. komunikat " Nie podłączono urządzenia" - jest ktoś w stani mi z tym pomóc ?

    0 1
  • #2 14 Cze 2005 00:45
    Deus
    Poziom 11  

    ReadFile zwraca bool'a, więc:

    Code:
    i f(ReadFile(hFile1, bufor1, Stat.cbInQue, &NumberOfBytesRead, 0))
    
    {
    //kod do wykonania po pomyślnym odczycie
    }
    else
    {
    //kod do wykonania przy wystąpieniu problemu
    }

    ew. można jeszcze uściślić warunek - jeżeli odczyt się powiódł, ale odczytano 0 bajtów... czyli:

    if((ReadFile(hFile1, bufor1, Stat.cbInQue, &NumberOfBytesRead, 0)) && (!NumberOfBytesRead))

    0
  Szukaj w 5mln produktów