CYFROWY BARON • PROGRAMOWANIE • Zobacz wątek - Odczyt pliku binarnego w pętli
Strona 1 z 1

Maksymalny czas DblClick

Nowy postNapisane: piątek, 16 listopada 2018, 19:00
przez Mironas
Jak wyciągnąć z systemu maksymalny czas zadziałania DblClick-u myszki?
Chodzi o maksymalny czas pomiędzy kliknięciami tak aby były rozpoznane jako podwójne kliknięcie a nie dwa pojedyncze kliknięcia.
GetSystemMetrics(...) nie ma takiego parametru :(

Re: Maksymalny czas DblClick

Nowy postNapisane: sobota, 17 listopada 2018, 12:25
przez polymorphism
GetDoubleClickTime

Re: Maksymalny czas DblClick

Nowy postNapisane: poniedziałek, 19 listopada 2018, 17:32
przez lukagrom
Pomocna strona o myszce i klawiaturze
http://xion.org.pl/files/texts/mgt/html/3_3.html

Re: Maksymalny czas DblClick

Nowy postNapisane: środa, 12 grudnia 2018, 11:36
przez Mironas
Dzięki panowie :)

Odczyt pliku binarnego w pętli

Nowy postNapisane: poniedziałek, 27 czerwca 2022, 22:18
przez moderasura
Witam...
Mam program którym czytam pliki binarne 28 bajtów z ustalonej na sztywno pozycji dany adres offset w tym przypadku zaczynam od początku pliku 0x0.Program działa ogólne wszystko jest w porządku ale tylko dla pierwszych 28 bajt. Pytanie da się to zrealizować jakoś w pętli aby to odczytać zmienną która zawsze zaczyna się od początku tych 28 bajtów? i np. wyświetlić to Memo?

KOD cpp:     UKRYJ  
void __fastcall TForm1::Button19Click(TObject *Sender)
{

 streampos size;
  byte * memblock;
  ifstream file ("USER.POS", ios::in|ios::binary|ios::ate);
  if (file.is_open())
  {
        size = file.tellg();
        memblock = new char [size];
        file.seekg (0);
        file.read (memblock, size);
        file.close();

        for (int i = 1; i < 10; i++) {

        Memo1->Lines->Add (memblock [0]);
        }
        Edit24->Text = "Otwarto Pomyślnie";
        Edit32->Text = (String)+ (size)+"  Bajtów";

         delete[] memblock;
        }
         else   Edit24->Text = "Błąd Otwarcia Pliku!";
         return ;
}

Re: Odczyt pliku binarnego w pętli

Nowy postNapisane: wtorek, 28 czerwca 2022, 11:01
przez polymorphism
W sumie nie wiadomo, o co dokładnie pytasz. Musisz chyba rozwinąć temat.

Jest kilka uwag:
  • skoro to zawsze 28 bajtów, to po co tam jest ta dynamiczna tablica?
  • wewnątrz pętli dodajesz 9x pierwszy element tablicy. Dlaczego?
  • dane przeczytane strumieniem to tekst?

Re: Odczyt pliku binarnego w pętli

Nowy postNapisane: czwartek, 30 czerwca 2022, 14:21
przez lukagrom
Tu chyba zwykłe dodawania na char-ach wystarczy.
Długość pliku już znasz.
Wprowadź jakąs wartość pozycji od której chcesz zacząć, która + 28 nie przekroczy długości pliku.
Można przyjąć, że jeden char to jeden bajt.
KOD cpp:     UKRYJ  
char temp[pozycja+28];
          char result[28];
          char pierwsza;
      file.seekg (0);
      file.read (temp, size);
       file.close();
      int i,j;
      for(j=0,i=pozycja;i<pozycja+28;i++,j++)
       result[j]=temp[i];
      pierwsza=result[0];
 

Do Memo wyprowadzasz tablicę result; do labela pierwszy jej element.

Re: Odczyt pliku binarnego w pętli

Nowy postNapisane: czwartek, 30 czerwca 2022, 16:38
przez moderasura
lukagrom napisał(a):Tu chyba zwykłe dodawania na char-ach wystarczy.
Długość pliku już znasz.
Wprowadź jakąs wartość pozycji od której chcesz zacząć, która + 28 nie przekroczy długości pliku.
Można przyjąć, że jeden char to jeden bajt.
KOD cpp:     UKRYJ  
char temp[pozycja+28];
          char result[28];
          char pierwsza;
      file.seekg (0);
      file.read (temp, size);
       file.close();
      int i,j;
      for(j=0,i=pozycja;i<pozycja+28;i++,j++)
       result[j]=temp[i];
      pierwsza=result[0];
 

Do Memo wyprowadzasz tablicę result; do labela pierwszy jej element.


Z tym odczytem pliku nie ma problemu, po prostu nie wiem jak zrobić aby wyświetlać tylko konkretne bajty z pliku i to z automatu za pomocą pętli
KOD cpp:     UKRYJ  
void __fastcall TForm1::Button19Click(TObject *Sender) {

        int ilosc = 504; // 5180 bajtow

        streampos size;
        byte * memblock;

        ifstream file("USER.POS", ios::in | ios::out | ios::binary | ios::ate);
        if (file.is_open()) {

                size = file.tellg();
                file.seekg(0, file.end);
                memblock = new char(size);
                file.seekg(0, file.beg);
                file.read(memblock, size);

                file.close();

                for (int i = 0; i < ilosc; i++) // petla kolejnych

                {

                        // CheckListBox1->Items->Add(memblock[i]);

                        ValueListEditor1->Strings->Add(memblock[i]);
                }

                Memo1->Lines->Add("JEBUT");
                Edit34->Text = "Otwarto Pomyślnie";
                Edit33->Text = (String) + (size) + "  Bajtów";
                delete[]memblock;
        }
        else
                Edit34->Text = "Błąd Otwarcia Pliku!";
        return;
}


Podgląd z HexEdytor
19 54 00 00 FD FF 45 72 FC FF B9 96 00 00 00 00 40 FF FF BF 00 00 00 00 00 00 00 00
25 54 00 00 FD FF 98 73 FC FF 57 9A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
1D 54 00 00 FD FF B3 72 FC FF 5D 96 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Itd z taką ilością to bym zrobił to ręcznie ale tego jest więcej 100 200 lub nawet 300 :shock:
To jest struktura pliku 28 Bajtów przykładowo 3x28 bajt. OK kodem powyżej czytam i wyświetlam wszystko w ValueListEditor1 lub w czymś innym...
Teraz Pytanie jak zrobić aby odczytać i wyświetlać, tylko pierwsze bajty
19
25
1D
Itd.

Re: Odczyt pliku binarnego w pętli

Nowy postNapisane: piątek, 1 lipca 2022, 10:59
przez polymorphism
O to chodzi:
KOD cpp:     UKRYJ  
ifstream file("USER.POS", ios::binary);

byte v;

while (file.read(&v, 1)) {
    ValueListEditor1->Strings->Add(v);
    file.seekg(27, ios_base::cur);
}
 

???

Re: Odczyt pliku binarnego w pętli

Nowy postNapisane: piątek, 1 lipca 2022, 12:22
przez moderasura
polymorphism napisał(a):O to chodzi:
KOD cpp:     UKRYJ  
ifstream file("USER.POS", ios::binary);

byte v;

while (file.read(&v, 1)) {
    ValueListEditor1->Strings->Add(v);
    file.seekg(27, ios_base::cur);
}
 

???


Dzięki WIELKIE o to mi chodzi nic dodać nic ując. Kawałek kodu robi robotę...A ja kombinowałem jakieś głupoty :?