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

Odczyt pliku binarnego w pętli

dział ogólny

Maksymalny czas DblClick

Nowy postprzez Mironas » piątek, 16 listopada 2018, 19:00

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 :(
Avatar użytkownika
Mironas
Programista I
Programista I
 
Posty: 427
Dołączył(a): poniedziałek, 2 stycznia 2012, 19:02
Podziękował : 17
Otrzymał podziękowań: 61
System operacyjny: Windows 10
Kompilator: C++Builder 10.3 Rio
TMS Components Pack
Gadu Gadu: 0
    WindowsChrome

Re: Maksymalny czas DblClick

Nowy postprzez polymorphism » sobota, 17 listopada 2018, 12:25

GetDoubleClickTime
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2157
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 19
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows 7Firefox

Re: Maksymalny czas DblClick

Nowy postprzez lukagrom » poniedziałek, 19 listopada 2018, 17:32

Pomocna strona o myszce i klawiaturze
http://xion.org.pl/files/texts/mgt/html/3_3.html
Avatar użytkownika
lukagrom
Bladawiec
Bladawiec
 
Posty: 44
Dołączył(a): wtorek, 1 stycznia 2013, 14:54
Podziękował : 6
Otrzymał podziękowań: 0
System operacyjny: Windows Vista
Kompilator: C++ Builder 10.1 Starter
Gadu Gadu: 0
    Windows VistaChrome

Re: Maksymalny czas DblClick

Nowy postprzez Mironas » środa, 12 grudnia 2018, 11:36

Dzięki panowie :)
Avatar użytkownika
Mironas
Programista I
Programista I
 
Posty: 427
Dołączył(a): poniedziałek, 2 stycznia 2012, 19:02
Podziękował : 17
Otrzymał podziękowań: 61
System operacyjny: Windows 10
Kompilator: C++Builder 10.3 Rio
TMS Components Pack
Gadu Gadu: 0
    WindowsChrome

Odczyt pliku binarnego w pętli

Nowy postprzez moderasura » poniedziałek, 27 czerwca 2022, 22:18

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 ;
}
Avatar użytkownika
moderasura
Homos antropiczny
Homos antropiczny
 
Posty: 57
Dołączył(a): wtorek, 4 stycznia 2011, 20:07
Podziękował : 13
Otrzymał podziękowań: 0
System operacyjny: Windows-7 32 bit
Kompilator: C++ Borland 6
C++Builder 2009
Gadu Gadu: 0
    WindowsFirefox

Re: Odczyt pliku binarnego w pętli

Nowy postprzez polymorphism » wtorek, 28 czerwca 2022, 11:01

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?
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2157
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 19
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    LinuxFirefox

Re: Odczyt pliku binarnego w pętli

Nowy postprzez lukagrom » czwartek, 30 czerwca 2022, 14:21

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.
Avatar użytkownika
lukagrom
Bladawiec
Bladawiec
 
Posty: 44
Dołączył(a): wtorek, 1 stycznia 2013, 14:54
Podziękował : 6
Otrzymał podziękowań: 0
System operacyjny: Windows Vista
Kompilator: C++ Builder 10.1 Starter
Gadu Gadu: 0
    LinuxChrome

Re: Odczyt pliku binarnego w pętli

Nowy postprzez moderasura » czwartek, 30 czerwca 2022, 16:38

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.
Avatar użytkownika
moderasura
Homos antropiczny
Homos antropiczny
 
Posty: 57
Dołączył(a): wtorek, 4 stycznia 2011, 20:07
Podziękował : 13
Otrzymał podziękowań: 0
System operacyjny: Windows-7 32 bit
Kompilator: C++ Borland 6
C++Builder 2009
Gadu Gadu: 0
    WindowsFirefox

Re: Odczyt pliku binarnego w pętli

Nowy postprzez polymorphism » piątek, 1 lipca 2022, 10:59

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);
}
 

???
C++ Reference - opis wszystkich klas STL-a i funkcji C.

Za ten post autor polymorphism otrzymał podziękowanie od:
moderasura
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2157
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 19
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    LinuxFirefox

Re: Odczyt pliku binarnego w pętli

Nowy postprzez moderasura » piątek, 1 lipca 2022, 12:22

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 :?
Avatar użytkownika
moderasura
Homos antropiczny
Homos antropiczny
 
Posty: 57
Dołączył(a): wtorek, 4 stycznia 2011, 20:07
Podziękował : 13
Otrzymał podziękowań: 0
System operacyjny: Windows-7 32 bit
Kompilator: C++ Borland 6
C++Builder 2009
Gadu Gadu: 0
    WindowsFirefox


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 9 gości