IT NEWS PC REVUE PC FORUM FreeBSDInternet time: @988
Obsah fóra
Pravidlá  •  Kontakt  •  Prihlásenie  •  Registrácia

Lepšie vzťahy so zákazníkmi

väčšiu kontrolu nad firemnými procesmi získate so softvérom Sunsoft.CRM crm.sunsoft.sk

Sprostredkovávajte hypotéky

Začnite sprostredkovávať hypotéky s úspešným hypotekárnym centrom! www.SprostredkovanieUverov.sk

Čerstvý a voňavý domov?

Testovali sme Ambi Pur. Pozrite sa na prekvapivé výsledky experimentu! youtube.com/AmbiPur_SK

Získajte bonus 50 €

Prejdite na ktorýkoľvek program s platbou na faktúru. Len cez e-shop. www.o2.sk

Lacné ubytovanie pri Balatone

Ubytuj sa teraz až s 50% zľavou Akciové zľavy na viac ako 1000 ubytovaní szallasguru.sk

Save dát

Zaslať odpoveď
AutorSpráva
B.A.X.O
Užívateľ
Užívateľ

Založený: 22.01.2008
Príspevky: 426
Bydlisko: Bratislava - Petržalka

PríspevokZaslal: So 08.11.08 13:06Odpovedať s citátomNávrat hore

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 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?
Zobraziť informácie o autoroviOdoslať súkromnú správuJabberSkype
Patkoo
Užívateľ
Užívateľ

Založený: 02.11.2008
Príspevky: 85

PríspevokZaslal: So 08.11.08 15:46Odpovedať s citátomNávrat hore

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
Zobraziť informácie o autoroviOdoslať súkromnú správu
B.A.X.O
Užívateľ
Užívateľ

Založený: 22.01.2008
Príspevky: 426
Bydlisko: Bratislava - Petržalka

PríspevokZaslal: Ne 09.11.08 22:37Odpovedať s citátomNávrat hore

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
Zobraziť informácie o autoroviOdoslať súkromnú správuJabberSkype
Patkoo
Užívateľ
Užívateľ

Založený: 02.11.2008
Príspevky: 85

PríspevokZaslal: Ne 09.11.08 23:07Odpovedať s citátomNávrat hore

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/index.php?option=com_content&task=view&id=40&Itemid=63

Ak by ti bolo neco nejasne, napis.
Zobraziť informácie o autoroviOdoslať súkromnú správu
Patkoo
Užívateľ
Užívateľ

Založený: 02.11.2008
Príspevky: 85

PríspevokZaslal: Ne 09.11.08 23:14Odpovedať s citátomNávrat hore

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 ..
Zobraziť informácie o autoroviOdoslať súkromnú správu
B.A.X.O
Užívateľ
Užívateľ

Založený: 22.01.2008
Príspevky: 426
Bydlisko: Bratislava - Petržalka

PríspevokZaslal: Po 10.11.08 15:31Odpovedať s citátomNávrat hore

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??
Zobraziť informácie o autoroviOdoslať súkromnú správuJabberSkype
Patkoo
Užívateľ
Užívateľ

Založený: 02.11.2008
Príspevky: 85

PríspevokZaslal: Po 10.11.08 20:55Odpovedať s citátomNávrat hore

B.A.X.O napísal:
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 napísal:


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
Zobraziť informácie o autoroviOdoslať súkromnú správu
B.A.X.O
Užívateľ
Užívateľ

Založený: 22.01.2008
Príspevky: 426
Bydlisko: Bratislava - Petržalka

PríspevokZaslal: Ut 11.11.08 17:57Odpovedať s citátomNávrat hore

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
Zobraziť informácie o autoroviOdoslať súkromnú správuJabberSkype
Patkoo
Užívateľ
Užívateľ

Založený: 02.11.2008
Príspevky: 85

PríspevokZaslal: St 12.11.08 0:45Odpovedať s citátomNávrat hore

B.A.X.O napísal:
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 napísal:

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.
Zobraziť informácie o autoroviOdoslať súkromnú správu
B.A.X.O
Užívateľ
Užívateľ

Založený: 22.01.2008
Príspevky: 426
Bydlisko: Bratislava - Petržalka

PríspevokZaslal: St 12.11.08 10:19Odpovedať s citátomNávrat hore

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
Zobraziť informácie o autoroviOdoslať súkromnú správuJabberSkype
Patkoo
Užívateľ
Užívateľ

Založený: 02.11.2008
Príspevky: 85

PríspevokZaslal: St 12.11.08 11:10Odpovedať s citátomNávrat hore

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
Zobraziť informácie o autoroviOdoslať súkromnú správu
B.A.X.O
Užívateľ
Užívateľ

Založený: 22.01.2008
Príspevky: 426
Bydlisko: Bratislava - Petržalka

PríspevokZaslal: St 12.11.08 13:25Odpovedať s citátomNávrat hore

Patkoo napísal:
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?
Zobraziť informácie o autoroviOdoslať súkromnú správuJabberSkype
Patkoo
Užívateľ
Užívateľ

Založený: 02.11.2008
Príspevky: 85

PríspevokZaslal: St 12.11.08 16:16Odpovedať s citátomNávrat hore

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
Zobraziť informácie o autoroviOdoslať súkromnú správu
B.A.X.O
Užívateľ
Užívateľ

Založený: 22.01.2008
Príspevky: 426
Bydlisko: Bratislava - Petržalka

PríspevokZaslal: Št 13.11.08 18:15Odpovedať s citátomNávrat hore

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
Zobraziť informácie o autoroviOdoslať súkromnú správuJabberSkype
Patkoo
Užívateľ
Užívateľ

Založený: 02.11.2008
Príspevky: 85

PríspevokZaslal: Št 13.11.08 23:25Odpovedať s citátomNávrat hore

MagBox Premenna1 & vbNewLine & Premenna2
Zobraziť informácie o autoroviOdoslať súkromnú správu
Zobraziť príspevky z predchádzajúcich:    
Zaslať odpoveď
Nemôžete pridávať nové témy do tohto fóra.
Nemôžete odpovedať na témy v tomto fóre.
Nemôžete upravovať svoje príspevky v tomto fóre.
Nemôžete mazať svoje príspevky v tomto fóre.
Nemôžete hlasovať v tomto fóre.

Powered by phpBB 2.x.x © 2005 - 2012 PCforum, webhosting by WebSupport, edited by JanoF

SEO - optimalizácia pre vyhľadávače

Freebsd