Baza podataka

Baza podataka

offline
  • Pridružio: 01 Maj 2003
  • Poruke: 1300
  • Gde živiš: Kragujevac

pravim jedan program u vb-u i trebalo bi da cuvam odredjene podatke u bazi podataka. medjutim, klasicne baze podataka (npr. access) su velike za takav program, jer je to mali program.

hteo bih da te podatke cuvam u neki obican textualni fajl. one ipak zauzimaju manje prostora na hdd-u. a kako da to izvedem. a da kasnije mogu odredjene podatke da brisem i dodajem.

mislim da ste me razumeli... Smile



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 18 Apr 2003
  • Poruke: 5001
  • Gde živiš: Beograd

ili da razvijes svoj interni sistem upravljanja za informacije koje ti trebaju Smile ili nesto ovako

deklarises variant tip i ovde stavis koja ti sve polja trebaju
Public Type Baza     nesto1     As String     nesto2     As Integer     Rezerva1        As String       ' kasnije ces mozda shvatiti da ti treba jos koje polje End Type

i onda kad oces da upises u fajl
Dim db As Baza with db  .nesto1="to i to"  .nesto2=2 end with     Open imefajla For Binary Access Write As #1    ' otvara fajl         Put #1, brojrekorda, db                              ' pise podatke u fajl     Close #1                                                       ' zatvara fajl
e sad ovde imas poziciju tj. broj rekorda u koji zelis da upises ovaj blok podataka

citanje iz tog fajla
    Open Putanjadofajla For Binary Access Read As #1   ' otvara fajl         Get #1, pozicijakojucitas, db                        ' cita podatke iz fajla     Close #1                                    ' zatvara fajl

e sad da li ima brisanje to ne znam sad napamet davno sam radio sa ovim ako zelis pogledacu pa cu ti reci



offline
  • Pridružio: 01 Maj 2003
  • Poruke: 1300
  • Gde živiš: Kragujevac

ok. ajde molim te ako mozes pogledaj, posto mi je i brisanje veoma potrebno.

offline
  • Pridružio: 18 Apr 2003
  • Poruke: 5001
  • Gde živiš: Beograd

malo sam pogresio sa onim funkcijama gore evo je ispravka,delete nema tako da moras koristiti programersku domisljatost koja je u vb-u veoma ogranicena moram reci Smile nisam uspeo da nadjem kako bi mogao da uradis delete funkciju za txt fajl pise ti dole gde je tacno zapelo pa ti vidi mozda ti nesto padne na pamet


Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, ByVal lpSecurityAttributes As Any, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long Private Declare Function SetFilePointer Lib "kernel32" (ByVal hFile As Long, ByVal lDistanceToMove As Long, lpDistanceToMoveHigh As Long, ByVal dwMoveMethod As Long) As Long Private Declare Function SetEndOfFile Lib "kernel32" (ByVal hFile As Long) As Long Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long Private Const GENERIC_READ = &H80000000 Private Const GENERIC_WRITE = &H40000000 Private Const FILE_SHARE_READ = &H1 Private Const FILE_SHARE_WRITE = &H2 Private Const OPEN_EXISTING = 3 Private Const OPEN_ALWAYS = 4 Private Const FILE_BEGIN = 0 Private Type Baza     nesto1     As String     nesto2     As Integer     Rezerva1   As String  ' kasnije ces mozda shvatiti da ti treba jos koje polje End Type Private Sub upis_Click() ' upis podataka u fajl     Dim db As Baza     With db    'obrada         .nesto1 = "prvi"         .nesto2 = 0     End With     Open "c:\proba.txt" For Random As #1         Put #1, brojrekorda, db          ' pise podatke u fajl     Close #1 End Sub Private Sub citaj_Click() 'cita podatke iz fajla     Dim db As Baza     Dim Str As String     Dim num As Integer     Open "c:\proba.txt" For Random As #1         Get #1, brojrekorda, db          ' cita podatke iz fajla     Close #1         'obrada     Str = db.nesto1     num = db.nesto2 End Sub Private Sub citanje_svega() ' redom cita sve     Dim db As Baza     Open "c:\proba.txt" For Random As #1     Do While Not EOF(1)         Get #1, , db        ' cita sledeci         'obrada     Loop     Close #1 End Sub Private Sub obrisi_Click() ' brisanje rekorda     Dim db As Baza     Dim hFile As Long     Dim kraj As Long     Dim zadnjizapis As Integer     Open "c:\proba.txt" For Random As #1     Do While Not EOF(1)         zadnjizapis = Loc(1) + 1         Get #1, , db                ' trazimo zadnji zapis     Loop             Get #1, zadnjizapis, db         ' cita podatke iz zadnjeg rekorda     Put #1, brojrekorda, db         ' pise podatke koje smo procitali iz zadnjeg rekorda preko rekorda koji brisemo     Close #1     kraj = FileLen("c:\proba.txt") - Len(db) ' ovde treba izracunati gde se nalazi taj zadnji zapis u bajtovima ali to nisam uspeo da nadjem kako...     hFile = CreateFile("c:\proba.txt", GENERIC_READ Or GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, ByVal 0&, OPEN_EXISTING, 0, 0)  ' otvara fajl     If hFile <> -1 Then                         ' ako postoji fajl         SetFilePointer hFile, kraj, 0, FILE_BEGIN  ' pozicionira se u ondaj deo fajla koji treba obrisati         SetEndOfFile hFile                      ' odsece zadnji deo fajla         CloseHandle hFile                       ' zatvara     End If End Sub

offline
  • Pridružio: 04 Maj 2008
  • Poruke: 181
  • Gde živiš: Prijepolje

Aj postavi da vidimo final verziju

Dopuna: 29 Avg 2008 15:23

sry sto nastavljam bajatu temu al bas bi voleo da vidim

offline
  • Nemanja
  • Web Designer and Developer
  • Pridružio: 24 Jan 2007
  • Poruke: 266

probaj preko richtextboxa... ai problem je sto moras da cuvas svaki text posebno ;D

Ko je trenutno na forumu
 

Ukupno su 701 korisnika na forumu :: 3 registrovanih, 0 sakrivenih i 698 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: darkojbn, Parker, proka89