https://github.com/naghim/fft2022-lab08
https://github.com/naghim/fft2022-lab08
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/naghim/fft2022-lab08
- Owner: naghim
- Created: 2022-03-16T09:21:07.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2022-03-16T09:24:40.000Z (almost 4 years ago)
- Last Synced: 2025-02-25T12:48:56.022Z (11 months ago)
- Size: 1.95 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Labor 08
## Feladatok
1. Írjunk egy szöveges fájlkereső alkalmazást, megy egy adott könyvtárban megkeresi az összes állományt és visszatéríti azokat melyek tartalmazzák a keresett karakterláncot. Ha a felhasználó nem specifikálja (üres) a keresési karakterláncot, térítsük vissza az összes
állományt. Az állományok nevét és méretét jelenítsük meg tábálázat formájában.
- A könyvtár kiválasztásához használjuk [```QFileDialog```](https://doc.qt.io/qt-5/qfiledialog.html) osztályt illetve, a ```QDir::currentPath()``` függvényt az aktuális könyvtár lekéréséhez.
- A könyvtárak kezelésére, illetve a könyvtár struktúra bejárásához használjuk a beépített [```QDir```](https://doc.qt.io/qt-5/qdir.html) és [```QDirIterator```](https://doc.qt.io/qt-5/qdiriterator.html) osztályokat.
- A szöveges fájlok feldolgozásához, tartalmuk beolvasásához a [```QFile```](https://doc.qt.io/qt-5/qfile.html) és [```QTextStream```](https://doc.qt.io/qt-5/qtextstream.html) osztályokat használjuk. Mivel a fájlok feldolgozása sok időt vehet igénybe, a [```QProgressDialog```](https://doc.qt.io/qt-5/qprogressdialog.html) segítségével jelezzük a felhasználó felé, hány százalékát dolgoztuk fel a fájloknak, hol tartunk.
- A keresés eredményét egy [```QTableWidget```](https://doc.qt.io/qt-5/qtablewidget.html) objektum segítségével jelenítjük meg, a fájlokról információkat (pl. méret) a [```QFileInfo```](https://doc.qt.io/qt-5/qfileinfo.html) segítségével kérhetünk le.
- [Egy lehetséges megoldás, lépésről lépésre](http://doc.qt.io/qt-5/qtwidgets-dialogs-findfiles-example.html)

2. Listázzuk ki egy könyvtárban hány futtatható alkalmazás (```application/x-executable```), illetve hány C/C++ forrásállomány található (```text/x-c++hdr, text/x-c++src, text/x-csrc```). A fájl típusát a [```QMimeType```](https://doc.qt.io/qt-5/qmimetype.html) segítségével tudjuk lekérdezni, a lehetséges [MIME típusok listája](https://mediatemple.net/community/products/dv/204403964/mimetypes)
3. Írjunk egy bináris képekben kereső alkalmazást, ahol a keresendő bájtsorozatot megadhatjuk hex vagy bináris kódolásban. Az adatok beolvasásához használjunk [```QDataStream```](https://doc.qt.io/qt-5/qdatastream.html)-et. A fájl típusát a [```QMimeType```](https://doc.qt.io/qt-5/qmimetype.html) segítségével tudjuk lekérdezni (```image/*```) .
### Qt és MySql adatbázis összekötése --> [demó](https://github.com/szabolcscsaholczi/Qt_lab10_Database.git)
* Hozzuk létre a tábláinkat/adatainkat a PhpMyAdmin segítségével.
* Módosítsd a ```.pro``` fájlt:
```c++
QT += core gui sql
```
* Szükséges könyvtárak:
```c++
#include
#include
#include
```
* Összekötés:
```c++
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setUserName("root"); // az alapvető felhasználónév xamppban
db.setPassword(""); // alapvetően nincs beállítva jelszó
db.setDatabaseName("qt_database");
if (db.open())
{
QMessageBox::information(this, "Kapcsolódás", "Kapcsolódás sikeres.");
}
else
{
QMessageBox::information(this, "Kapcsolódás", "Kapcsolódás sikertelen.");
}
```
* Lekérdezések:
```c++
string userid;
QSqlQuery mySqlQuery;
mySqlQuery.exec("SELECT * FROM users");
if (mySqlQuery.size() > 0) {
while (mySqlQuery.next()) {
userid = mySqlQuery.value("id").toString().toUtf8().constData();
username = mySqlQuery.value("name").toString().toUtf8().constData();
}
}
```