[ Príspevkov: 15 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Save dát

Registrovaný: 22.01.08
Prihlásený: 19.04.15
Príspevky: 492
Témy: 135 | 135
Bydlisko: Bratislava ...
NapísalOffline : 08.11.2008 12:06 | Save dát

Mám novú otázku, nie je to problém ale čiste zo zaujímavosti. Ako ukladať data s hry? :) ako do Save Slotov v hre. Robím (zatial docela uspesne) jednu adventurku vo VB a síce nepotrebujem tam save keďže ide len o prvý diel série ale v Ďalších to už potreba bude takže preto sa pýtam. Hra je riešena dosť debilne prevažne rozne Visible = True/False :lol: a prepinanie sa medzi formami. samozrejme mám aj nejaký ten Modul a herný systém cez premenné a overovanie a tak. A tak sa pýtam či je možné niečo v takomto stave zaznamenať a uložit do nejakého Save suboru v subore s hrou.
Spočiatku som plánoval čosi že tam prednastavím 6 save suborov a to bude predstavovat 6 save slotov a pri ulozeni by som zapisoval do nich sucasny kod v akom stave je pocas hry prave a zaznamenal a pri nacitani opat nacital. ale to mi nepripada moc efektivne, neporadi mi prosim niekdo?


Offline

Užívateľ
Užívateľ
Save dát

Registrovaný: 02.11.08
Prihlásený: 10.08.12
Príspevky: 85
Témy: 1 | 1
NapísalOffline : 08.11.2008 14:46 | Save dát

Myslim, ze pokial nemas nejaku moc komplikovanu hru tak staci iba trochu prace so subormi.

Napr.: Vzdy ked klikne hrac na "save" tak sa vytvori novy subor (bude sa volat napr. 08.11.2008.dat - datum, moze tam byt hociaka koncovka) a do toho suboru sa budu ukladat hodnoty, ktore po "load game" potrebujes pre spravne spustenie nacitanej hry (napr. skore, poloha panacika, veci panacika atp.) A jednoducho budes citat zo "save suboru" po riadkoch informacie a nastavovat ich na formulari.

Ak by si este chcel, mozes si ten subor sifrovat nejak aby sa nedal subor upravit v notepade napr. tak, aby hrac mal co ja viem score 1000000.


Ak by ta hra bola zlozitejsia, bolo by to uz komplikovanejsie. Na nete najdes urcite par zdrojakov, ktore ti ukazu ako to asi funguje. Osobne sa na hry moc nezameriavam, takze neviem ti blizsie poradit.


edit: Ak myslis zapisovanie do exe suboru hry, tak to je za behu programu nemozne a navyse neprakticke :)


Offline

Užívateľ
Užívateľ
Save dát

Registrovaný: 22.01.08
Prihlásený: 19.04.15
Príspevky: 492
Témy: 135 | 135
Bydlisko: Bratislava ...
Napísal autor témyOffline : 09.11.2008 21:37 | Save dát

a nemohol by si mi dat nejaky link na tutorial pre funkcie na pracu zo subormi? velmi by si mi pomohol, raz som jeden taky cital ale jedine co som si zapametal z neho bolo Kill "subor" :(
a este to sifrovanie, ako to zasifrovat + pri citani s toho zase odsifrovat aby si to hra vedela precitat


Offline

Užívateľ
Užívateľ
Save dát

Registrovaný: 02.11.08
Prihlásený: 10.08.12
Príspevky: 85
Témy: 1 | 1
NapísalOffline : 09.11.2008 22:07 | Save dát

Pre hru pouzi INI subor:
Kód:
http://www.vbforums.com/showthread.php?t=439267
http://www.codeguru.com/forum/showthread.php?t=333940


Praca so subormi:
http://www.vbforums.com/showthread.php?t=342619
http://jrsofty1.stinkbugonline.com/inde ... &Itemid=63

Ak by ti bolo neco nejasne, napis.


Offline

Užívateľ
Užívateľ
Save dát

Registrovaný: 02.11.08
Prihlásený: 10.08.12
Príspevky: 85
Témy: 1 | 1
NapísalOffline : 09.11.2008 22:14 | Save dát

K tomu sifrovaniu ..

Ak chces pouzit nejake svoje sifrovanie, musis si spravit vlastny algoritmus na sifrovanie (mozno by sa u mna nejake nasli) ...

Ak chces pouzit nejaky "zakladny", odporucam pozret:
http://www.freevbcode.com/ShowCode.asp?ID=1092
http://support.microsoft.com/kb/821762
http://www.dreamincode.net/forums/showtopic15044.htm

Princip je v tom, ze ty pred tym ako da hrac "save game" si ulozis obsah toho, co by mal obsahovat "save" subor do nejakej premennej, ktoru zasifrujes a tu vlozis do tvojho "save" suboru ...

Ak da hrac "load game", najprv desifrujes pomocou algoritmu obsah "save" suboru a az potom zacnes s tym pracovat ..


Offline

Užívateľ
Užívateľ
Save dát

Registrovaný: 22.01.08
Prihlásený: 19.04.15
Príspevky: 492
Témy: 135 | 135
Bydlisko: Bratislava ...
Napísal autor témyOffline : 10.11.2008 14:31 | Save dát

kukam ze je to tazsie nez som si myslel...ale mohol by si mi s niecim poradit. mam nieco taketo:

Kód:
Dim Subor As Integer

Private Sub Command1_Click()
Subor = FreeFile
Open "C:\hh.txt" For Output As #Subor
  Print #Subor, "nejaký text"
Close #Subor
End Sub


Ale mám k tomu otázku, prečo vždy keď to spustím sa to do suboru vlozi len raz?? myslím tým len raz sa to tam vloží a ked chcem znova už sa nič nestane.

Dalej nejde mi moc otvorenie a zaznamenanie suboru. je to klasicky takto:


Kód:
Dim Subor As Integer

Subor = FreeFile
Open "C:\XXX.txt" For Output As #Subor


a toto mi ide, ale nedari sa mi na to aplikovat funkciu Line Input. ktora precita jeden riadok zo suboru a zaznamena do premennej typu String.

a k tomuto mám tiez otázku, co ak potrebujem precitat viac riadkov? ako by taky kod vyzeral?

+ to iste pri zapisovani do suboru (vyssie) jak zapisat nieco do viacerych riadkov??


Offline

Užívateľ
Užívateľ
Save dát

Registrovaný: 02.11.08
Prihlásený: 10.08.12
Príspevky: 85
Témy: 1 | 1
NapísalOffline : 10.11.2008 19:55 | Save dát

B.A.X.O píše:
kukam ze je to tazsie nez som si myslel...ale mohol by si mi s niecim poradit. mam nieco taketo:

Kód:
Dim Subor As Integer

Private Sub Command1_Click()
Subor = FreeFile
Open "C:\hh.txt" For Output As #Subor
  Print #Subor, "nejaký text"
Close #Subor
End Sub


Ale mám k tomu otázku, prečo vždy keď to spustím sa to do suboru vlozi len raz?? myslím tým len raz sa to tam vloží a ked chcem znova už sa nič nestane.

####
K tomuto: Robi to preto, lebo VB otvori subor hh.txt ako output a na dalsom riadku kodu tam vlozi hodnotu "nejaky text". Tym padom prepise vsetko co bolo v tom subore doteraz. Ak chces zapisovat znova a znova, musis si najprv precitat hodnotu suboru a az potom tam zapisovat a pouzivat neco ako:
Kód:
Dim textova_hodnota As String
Dim co_chcem_zapisat As String
Dim FF
FF = FreeFile

co_chcem_zapisat = "nejaky text"
Open "hh.txt" For Input As #FF
Do While Not EOF(iFileNo)
Input #FF, textova_hodnota
Loop
Close #FF

Open "hh.txt" For Output As #FF
Print #FF, textova_hodnota & vbNewLine & co_cchem_zapisat
Close #FF


####

B.A.X.O píše:

Dalej nejde mi moc otvorenie a zaznamenanie suboru. je to klasicky takto:


Kód:
Dim Subor As Integer

Subor = FreeFile
Open "C:\XXX.txt" For Output As #Subor


a toto mi ide, ale nedari sa mi na to aplikovat funkciu Line Input. ktora precita jeden riadok zo suboru a zaznamena do premennej typu String.

a k tomuto mám tiez otázku, co ak potrebujem precitat viac riadkov? ako by taky kod vyzeral?

+ to iste pri zapisovani do suboru (vyssie) jak zapisat nieco do viacerych riadkov??


Skusme to na konkretnom priklade ..
Na form si daj
MultiLine text1
Command1 -> Command1.caption = "Citaj"

Po kliknuti na citaj sa ti nacita obsah suboru "data.txt", v ktorom sa nachadza viacriadkovy text. Ku kazdemu riadku prida aj cislo riadku.



Ak som na nieco zabudol, napis :-)
Kód:
Private Sub Command1_Click()
Dim subor As String
Dim ff As Integer
Dim riadok As String
Dim cely_text As String
Dim i As Integer

subor = "C:\Program Files\Microsoft Visual Studio\VB98\read\data.txt"
ff = FreeFile

Open subor For Input As #ff

i = 1
Do While Not EOF(ff)
   Line Input #ff, riadok
   
   riadok = i & ". " & riadok & vbCrLf
   cely_text = cely_text & riadok
   
   i = i + 1
Loop
Text1.Text = cely_text

Close #ff
End Sub


Offline

Užívateľ
Užívateľ
Save dát

Registrovaný: 22.01.08
Prihlásený: 19.04.15
Príspevky: 492
Témy: 135 | 135
Bydlisko: Bratislava ...
Napísal autor témyOffline : 11.11.2008 16:57 | Save dát

strasne ti dakujem si mi pomohol dík. ale este jednu otázku, nakoniec ved preda to o com sa tu bavime je prospesne aj pre inych kedze VB je uz tabu sa da povedat. ako to je s gif animaciami? našiel som si knižnicu AniGif.ocx a funguje jak ma, no problem je v tom že je Unregistered. a nejdu na to moc ani cracky alebo pod, som skúšal. Ono by to ani nevadilo lebo to funguje jak má, ale vždy pr ispusteni exe sa hodi tabulka o unregistered a pod. takže to tam nemoze byt, teda ci nevies este o niecom inom co by mi pomohlo? dik

a este mám kod:

Kód:
Dim Subor As String

Private Sub Command1_Click()
Subor = FreeFile
Open "C:\tt.txt" For Output As #Subor
  Print #Subor, "nejaký text"
Close #Subor
End Sub

Private Sub Command2_Click()
Text1.Text = Subor
End Sub


ale nepochopil som prečo ked preniesiem obsah suboru do ktoreho som zapisoval sa ukaze len 1 v textboxe :? . ved to nepocita riadky...
a skusal som aj typy: Integer a Long. ale nic, myslel som ze je to v tom ale zrejme nie


Offline

Užívateľ
Užívateľ
Save dát

Registrovaný: 02.11.08
Prihlásený: 10.08.12
Príspevky: 85
Témy: 1 | 1
NapísalOffline : 11.11.2008 23:45 | Save dát

B.A.X.O píše:
strasne ti dakujem si mi pomohol dík. ale este jednu otázku, nakoniec ved preda to o com sa tu bavime je prospesne aj pre inych kedze VB je uz tabu sa da povedat. ako to je s gif animaciami? našiel som si knižnicu AniGif.ocx a funguje jak ma, no problem je v tom že je Unregistered. a nejdu na to moc ani cracky alebo pod, som skúšal. Ono by to ani nevadilo lebo to funguje jak má, ale vždy pr ispusteni exe sa hodi tabulka o unregistered a pod. takže to tam nemoze byt, teda ci nevies este o niecom inom co by mi pomohlo? dik


V referenciach si najdi GIF ActiveX, malo by byt original od Microsoftu.

B.A.X.O píše:
a este mám kod:

Kód:
Dim Subor As String

Private Sub Command1_Click()
Subor = FreeFile
Open "C:\tt.txt" For Output As #Subor
  Print #Subor, "nejaký text"
Close #Subor
End Sub

Private Sub Command2_Click()
Text1.Text = Subor
End Sub


ale nepochopil som prečo ked preniesiem obsah suboru do ktoreho som zapisoval sa ukaze len 1 v textboxe :? . ved to nepocita riadky...
a skusal som aj typy: Integer a Long. ale nic, myslel som ze je to v tom ale zrejme nie


1.) Ten kod mas zle... Do FreeFile nemozes zapisovat string.
FreeFile = 1 vacsinou, nemoze to byt string, musi byt integer alebo long
#Subor = 1, a je to oznacenie handle suboru, cize nemozes tam zapisovat data z txt suboru.

Ak nieco chyba, napis, uz je neskoro mozno som na nieco zabudol.


Offline

Užívateľ
Užívateľ
Save dát

Registrovaný: 22.01.08
Prihlásený: 19.04.15
Príspevky: 492
Témy: 135 | 135
Bydlisko: Bratislava ...
Napísal autor témyOffline : 12.11.2008 9:19 | Save dát

no to je všetko pekné ale...ako teda zobrazit data z txt suboru do textboxu? ist to predsa musi...mám chybu vo formate freefile? ale ja som nevedel ze su este ine


Offline

Užívateľ
Užívateľ
Save dát

Registrovaný: 02.11.08
Prihlásený: 10.08.12
Príspevky: 85
Témy: 1 | 1
NapísalOffline : 12.11.2008 10:10 | Save dát

neviem, ci si si vsimol ten kod co som ti napisal vyssie ... cita vsetky data PO RIADKOCH z textoveho suboru a prida ku kazdemu riadku cislo riadku ...

Vysledny text zapise do textboxu
Kód:
Private Sub Command1_Click()
Dim subor As String
Dim ff As Integer
Dim riadok As String
Dim cely_text As String
Dim i As Integer

subor = "data.txt"
ff = FreeFile

Open subor For Input As #ff

i = 1
Do While Not EOF(ff)
   Line Input #ff, riadok
   
   riadok = i & ". " & riadok & vbCrLf
   cely_text = cely_text & riadok
   
   i = i + 1
Loop
Text1.Text = cely_text

Close #ff
End Sub


Offline

Užívateľ
Užívateľ
Save dát

Registrovaný: 22.01.08
Prihlásený: 19.04.15
Príspevky: 492
Témy: 135 | 135
Bydlisko: Bratislava ...
Napísal autor témyOffline : 12.11.2008 12:25 | Save dát

Patkoo píše:
neviem, ci si si vsimol ten kod co som ti napisal vyssie ... cita vsetky data PO RIADKOCH z textoveho suboru a prida ku kazdemu riadku cislo riadku ...

Vysledny text zapise do textboxu
Kód:
Private Sub Command1_Click()
Dim subor As String
Dim ff As Integer
Dim riadok As String
Dim cely_text As String
Dim i As Integer

subor = "data.txt"
ff = FreeFile

Open subor For Input As #ff

i = 1
Do While Not EOF(ff)
   Line Input #ff, riadok
   
   riadok = i & ". " & riadok & vbCrLf
   cely_text = cely_text & riadok
   
   i = i + 1
Loop
Text1.Text = cely_text

Close #ff
End Sub


Ano máš pravdu díky, ale ten tvoj kod má jednu chybu. Ked kliknem na tlačitko co ma spravit ten tvoj script, tak mi vypise normalne obsah suboru data.txt:

nejaký text
nejaký text

a výsledna podoba v textboxe je:

1.nejaký text
2.nejaký text

ale ked to tlačítko spustím znova tak sa tam pridá toto:

1.nejaký text
2.nejaký text
1.nejaký text

a to je problém lebo by mi to mohlo spravit bordel v save subore. Domnieval som sa že je to tým Loop teda opakovat, ale ked som to odstranil hodilo chybu, v dosledku toho cyklu Do while. tak som odstranil Do a na koniec scriptu miesto Loop som dal Wend. ale, script napisal chyu Bad file name or number...

takze neviem, asi som fakt lama:D a snazim sa tu riesit to na co nemam

PS: cisla riadkov nie sú nutné
a nedalo by sa to previest do podoby ze tie dva riadky s data.txt ulozim do dvoch premenných ktoré potom zobrazím do textboxu?


Offline

Užívateľ
Užívateľ
Save dát

Registrovaný: 02.11.08
Prihlásený: 10.08.12
Príspevky: 85
Témy: 1 | 1
NapísalOffline : 12.11.2008 15:16 | Save dát

jo sorry.. musis si vynulovat integer i na 1 vzdy pred kazdym kliknutim na skript, taktiez musis pridat na zaciatok Command1_Click riadok: Text1.text = ""


Urcite sa to da ...

na form si daj 3 tlacitka a jeden textbox, do ktoreho budes zadavat cislo riadku, ktory sa ti vypise.

Budem pouzivat Polia (Arrays).


Kód:
Dim riadok(0 To 100) As String

Private Sub Command1_Click()
Dim subor As String
Dim file_handle As Integer

file_handle = FreeFile

subor = App.Path & "\data.txt"

Open subor For Input As #file_handle
i = 0
Erase riadok
Do While Not EOF(file_handle)
   Line Input #file_handle, riadok(i)
    i = i + 1
Loop

Close #file_handle
End Sub

Private Sub Command2_Click()
Dim cislo As Integer

cislo = Text1.Text
If cislo = 1 Then cislo = 0

If riadok(cislo) = "" Then

Else
MsgBox riadok(cislo)
End If
End Sub


Offline

Užívateľ
Užívateľ
Save dát

Registrovaný: 22.01.08
Prihlásený: 19.04.15
Príspevky: 492
Témy: 135 | 135
Bydlisko: Bratislava ...
Napísal autor témyOffline : 13.11.2008 17:15 | Save dát

hm docela zaujimavy script aj som ho sam trocha vyuzil...ale. kedze sa ucim nemozem len brat diela ostatnych preto napisal som toto:
Kód:
Dim Premenna1 As String, Premenna2 As String
Dim Subor As Integer
Private Sub Command1_Click()
Subor = FreeFile
Open "C:\data.txt" For Input As #Subor
Line Input #Subor, Premenna1
Line Input #Subor, Premenna2
MsgBox Premenna1
MsgBox Premenna2
Close #Subor
End Sub


dokonca je to aj funkcne, problem je v tom ze Msgbox zobrazi premenne inak ako chcem, teda najprv jedno vystrazne okno s textom Nejaky text a potom odkliknes ok a vzapeti druhe Nejaky text2.

mimochodom obsah suobru data.txt je:

Nejaky text
Nejaky text2

ano je to banalny problem, ale...chcel som obidve nejako natlacit do toho jedneho msgboxu ale neslo to...skusal som to niekolkymio sposobmi:

MsgBox Premenna1, Premenna2

MsgBox Premenna1 Or Premenna2

MsgBox Premenna1 And Premenna2

ale vzdy hlasi Run time error 13, type mismatch


Offline

Užívateľ
Užívateľ
Save dát

Registrovaný: 02.11.08
Prihlásený: 10.08.12
Príspevky: 85
Témy: 1 | 1
NapísalOffline : 13.11.2008 22:25 | Save dát

MagBox Premenna1 & vbNewLine & Premenna2


 [ Príspevkov: 15 ] 


Save dát



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

session save

v PHP, ASP

10

581

06.08.2009 13:38

antivir

V tomto fóre nie sú ďalšie neprečítané témy.

Mafia Save

v Počítačové hry

4

18603

30.12.2006 14:55

johny128

V tomto fóre nie sú ďalšie neprečítané témy.

save as .XML

v JavaScript, VBScript, Ajax

5

506

05.01.2013 10:02

Ďuri

V tomto fóre nie sú ďalšie neprečítané témy.

NFS U2 save ?

v Počítačové hry

4

1507

01.05.2006 15:42

kolovratok

V tomto fóre nie sú ďalšie neprečítané témy.

Save NFS U2

v Počítačové hry

2

876

07.12.2008 11:06

uniqat

V tomto fóre nie sú ďalšie neprečítané témy.

Problemik so save

v Počítačové hry

3

540

17.05.2009 22:39

johnny7

V tomto fóre nie sú ďalšie neprečítané témy.

save v knoppixe

v Operačné systémy Unix a Linux

2

665

30.08.2006 8:02

Wolf

V tomto fóre nie sú ďalšie neprečítané témy.

NHL 09 save data

v Počítačové hry

1

399

12.03.2013 12:26

Daron

Táto téma je zamknutá, nemôžete posielať nové príspevky alebo odpovedať na staršie.

Assassins Creed 3 Save

v Počítačové hry

3

420

14.11.2013 9:59

brmbo

V tomto fóre nie sú ďalšie neprečítané témy.

Save do Far Cry

v Počítačové hry

1

1295

04.10.2006 22:00

Rasputin

V tomto fóre nie sú ďalšie neprečítané témy.

Saints row 3 save

v Počítačové hry

0

391

07.04.2012 9:12

kemperik

V tomto fóre nie sú ďalšie neprečítané témy.

Chcem dať môj JS projekt na github, ako tam dať obrázky?

v Ostatné

10

1196

27.03.2014 21:56

Kamahl

V tomto fóre nie sú ďalšie neprečítané témy.

Java - save to txt file

v Assembler, C, C++, Pascal, Java

2

262

07.12.2012 9:58

Mike7400

V tomto fóre nie sú ďalšie neprečítané témy.

Problem s power save mode

v Monitory, televízory a projektory

3

1042

28.11.2011 21:22

Humwee

V tomto fóre nie sú ďalšie neprečítané témy.

Titan Quest problem zo SAVE

v Počítačové hry

5

1681

13.12.2006 14:27

Numline1

V tomto fóre nie sú ďalšie neprečítané témy.

P: Fortnite Save The World

v Predám

3

587

08.04.2018 0:22

Miso122



© 2005 - 2024 PCforum, edited by JanoF