Archiwum w komunikatorze

Archiwum w komunikatorze
SZ
  • Rejestracja:ponad 16 lat
  • Ostatnio:ponad 6 lat
  • Postów:107
0

Witam.

W czym polecacie stworzyć archiwum w komunikatorze?
Próbowałem się bawić z SQLite, ale może Wy polecicie mi coś innego, lepszego?
Zależy mi by potencjalna baza danych (bo raczej za pomocą baz danych najlepiej to stworzyć) była dość szybka (dla długich archiwów) oraz prosta w obsłudze. Dobrze by było, by nie można było odczytać zawartości pliku przez rózne edytory tekstu np notatnik (w SQLite był ten problem). W razie konieczności zostanę przy SQLite i się poduczę go używać ;)

Dodam, że nigdy nie miałem większej styczności z tym zagadnieniem.
Pozdrawiam.

payl
  • Rejestracja:prawie 16 lat
  • Ostatnio:około 13 lat
  • Postów:196
0

No skoro ma notepad to obsługiwać, to napisz to sam. No chyba że sądzisz że plików nie da się używać w Delphi.


Nie pisz do mnie PM o czymś co nie dotyczy bezpośrednio mnie. | Nie rozmawiaj ze mną jeśli brak Ci kultury (wystarczy że mi brakuje) | Nie jestem zły, jestem po prostu zły.
Patryk27
Czytasz mi w myślach :D
SZ
  • Rejestracja:ponad 16 lat
  • Ostatnio:ponad 6 lat
  • Postów:107
0

właśnie chodzi mi o to, by notepad nie mógł tego odczytać :P

Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad rok
  • Lokalizacja:Wrocław
  • Postów:13042
0

To zrób tak, jak napisał payl i zakoduj np.szyfrem Cezara.


SZ
  • Rejestracja:ponad 16 lat
  • Ostatnio:ponad 6 lat
  • Postów:107
0

ok, spróbuję sam coś wykombinować.

Czy macie jakieś sprawdzone metody na to? Co najlepiej zastosować, w jakim formacie do pliku zapisywać, by było w miarę szybkie? :)

Pozdrawiam

payl
  • Rejestracja:prawie 16 lat
  • Ostatnio:około 13 lat
  • Postów:196
1

Najlepiej zaipisywać po ludzku, a tutaj akurat prędkość zapisu nie musi być ogromna w porównaniu do prędkości odczytu.
Mi się wydaje że najzwyklejsze dopisywanie na końcu będzie ok, a jak czytamy to trzeba będzie się przenosić po pliku ale prędkość powinna być optymalna...


Nie pisz do mnie PM o czymś co nie dotyczy bezpośrednio mnie. | Nie rozmawiaj ze mną jeśli brak Ci kultury (wystarczy że mi brakuje) | Nie jestem zły, jestem po prostu zły.
Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad rok
  • Lokalizacja:Wrocław
  • Postów:13042
1

Pliki Ini+szyfr Cezara.
To jest najłatwiejsze połączenie.
Ew.można wymyślić takie coś:

Kopiuj
Type TWiadomosc = Record
 Data: String[10]; //00.00.0000
 Godzina: String[5]; //00:00
 UserName: String; //użytkownik, który napisał wiadomość
 MessageLen: Integer; //długość wiadomości
 Message: Array Of Char; //Array[0..MessageLen] Of Char <- pojedynczy znak wiadomości
End;
Type TRozmowa = Record
 PoczatekData, KoniecData: String[10]; //00.00.0000
 PoczatekGodzina, KoniecGodzina: String[5]; //00:00
 User1, User2: String[255]; //użytkownik 1, użytkownik 2; jak będzie ci się nudziło, to zawsze możesz zrobić takie coś -> User1Len: Integer; User1: Array Of Char; i analogicznie User2
 MessageCount: Integer; //ilość wiadomości
 Messages: Array Of TWiadomosc; //Array[0..MessageCount] Of TWiadomosc <- pojedyncza wiadomość
End;

I zapisywać BlockWrite/odczytywać BlockRead
Każda rozmowa to osobny plik, ew.wszystkie rozmowy mogą być np.w archiwum zip, które także możesz zakodować, jak sobie tam chcesz...
PS: oczywiście jest to podstawowa wersja i wymyślona na żywca; jak pomyślisz to też powinieneś dać radę coś wymyślić.


edytowany 3x, ostatnio: Patryk27
GM
  • Rejestracja:ponad 15 lat
  • Ostatnio:ponad 11 lat
  • Postów:152
1

Jak chcesz możesz użyć LZMA SDK Igora Pavlova, w łatwy sposób zmniejszysz rozmiar archiwum i zaszyfrujesz swoje dane w miarę mocnym AES-256. Prędkość kompresji nie jest zła - 1 MB/s na procesorze 2GHz i dekompresji - 10-20 MB/s.

Pozdrawiam.

PS. Choć szczerze mówiąc, jak używałem w swoim projekcie tego SDK, to na moim zabytku z procesorem 1,2 GHz prędkości były większe niż te, które podaje autor.

edytowany 2x, ostatnio: Golden_Mind
SZ
  • Rejestracja:ponad 16 lat
  • Ostatnio:ponad 6 lat
  • Postów:107
0

Patryk27 właśnie też oparłbym to o rekordy, ale zależy mi bardzo, by to wszystko było w jednym pliku. Kiedyś zrobiłem takie archiwum, że każda rozmowa, była w osobnym pliku, lecz szybko zrobił się z tego niezły bałagan. Może zrobię jakąś tablicę dynamiczną rekordów z rozmówcami i ją całą zapiszę do jednego pliku, ale czy to wypali? Nie mówię tu o samym dopisywaniu nowego rozmówcy na koniec pliku, lecz o uaktualnieniach już tych istniejących.

Pozdrawiam.

Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad rok
  • Lokalizacja:Wrocław
  • Postów:13042
0

Oczywiście, że tak się da.
Tylko po co trudzić sobie życie?
Skorzystaj z archiwum...


Misiekd
  • Rejestracja:ponad 21 lat
  • Ostatnio:ponad 12 lat
  • Postów:7923
0

powiedzcie mi po co namawiacie autora aby wymyślał koło od nowa?? W czym wam ten biedny sqlite przeszkadza


- Ciemna druga strona jest.
- Nie marudź Yoda, tylko jedz tego tosta.
Google NIE GRYZIE!
Pomogłem - kliknij

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.