Megválaszolatlan hozzászólások | Aktív témák Pontos idő: pén. nov. 01, 2024 0:05



Hozzászólás a témához  [ 132 hozzászólás ]  Oldal Előző  1, 2, 3  Következő
Visual Basic 2005 
Szerző Üzenet
arany tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 459
Tartózkodási hely: Tatabánya
Hozzászólás 
Na mégegyszer:

Alaphelyzetben a VB2005 a következő helyre menti a cuccait:
C:\Documents and Settings\...\Dokumentumok\Visual Studio 2005\
(A kipontozott részen a felhasználó neve van.)
Ahhoz hogy ezen a helyen megtaláld az általad írt progik forrását, az egész projectet el kell mentened a Save All paranccsal.
Hogy legyen EXE fájlod, le kell fordítani a forrást futtatható kódra a Build paranccsal.
Ezután már megtalálod azt a C:\Documents and Settings\...\Dokumentumok\Visual Studio 2005\Projects\Progi\Progi\bin\Release\ helyen. (A Progival jelölt helyeken a te programod neve van.)
Ha mégsem találod, akkor keress rá! (Progi.exe)

Ahhoz hogy egy VB-ben írt progit használjunk egy tetszőleges gépen, fent kell lennie a .NET Framework 2.0-nak. (Vagy legalább a megfelelő dll-eknek.)

Remélem érthető minden!


szer. ápr. 11, 2007 22:32
Profil Privát üzenet küldése
ezüst tag
Avatar

Csatlakozott: hétf. feb. 05, 2007 9:47
Hozzászólások: 79
Tartózkodási hely: Ausztrália
Hozzászólás 
írjatok!!!!!!!


szer. ápr. 11, 2007 18:34
Profil Privát üzenet küldése
ezüst tag
Avatar

Csatlakozott: hétf. feb. 05, 2007 9:47
Hozzászólások: 79
Tartózkodási hely: Ausztrália
Hozzászólás 
a fönt lévő kérdések még mindig álnak, csak azóta lett új i:
tudom hogy ezt egyszer már kitárgyaltuk, de hogy a fenébe kel egy projektet más gépen futtatnia leg egyszerűbben(azon a gépen ne legyen vb!)
Zsora hjavaslata a projekt mappán belül kimásolni az exet.
Baj: az általa megadott mappa üres!
A publis-nál ha a windows installert bepipálom, ako r nemengedi publikálni
ha nem jelölöm be akor azokon a gépeken, ahol nincs ot enm lehet futatni...

help!


hétf. ápr. 09, 2007 13:38
Profil Privát üzenet küldése
ezüst tag
Avatar

Csatlakozott: hétf. feb. 05, 2007 9:47
Hozzászólások: 79
Tartózkodási hely: Ausztrália
Hozzászólás 
szóval megoldottam egykét kérdést az msdn-el, de van, amit nemtudtam
:

ugye ha egy listbox-hoz akarunk adni valamit akkro az az item.add-al lehet.
de ha én akarok valuemembert is hozáadni?
pl:
hozáadom, hogy Kovács Lajos, és azt akarom, hogy amikor rákatintok, akor jelenjen meg egy szám, pl 13.
Ezt hogyan lehet, hogy nem cak itemet adok, ahnem anak értéket is?


pén. ápr. 06, 2007 15:49
Profil Privát üzenet küldése
ezüst tag
Avatar

Csatlakozott: hétf. feb. 05, 2007 9:47
Hozzászólások: 79
Tartózkodási hely: Ausztrália
Hozzászólás 
ok, ok
használom.
és az a tömbös próbléma már nem létezik, kitaáltam, hogyan lehetne egyszerűbben:
egy listbox-ba adjuk az értékeket, és egy változóval számoltatjuk, hány tagja van, így utána már könyű lejkérdezni az egyes elemeket(elméletileg)
a dologal kapcsolatban még nekem is van egy rakás kérdésem, de megnézem, mit tud az MSDN és csak utána kérdezek


pén. ápr. 06, 2007 12:27
Profil Privát üzenet küldése
arany tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 459
Tartózkodási hely: Tatabánya
Hozzászólás 
A megoldás a konkrét feledattól függ. pl.:
- a tömböt akkor hozod létre mielőtt felhasználod azt, és már nem változik az elemek száma
- tömbméretnek egy akkora értéket választasz, amekkorát biztosan nem lépsz túl

Az előző kérdéseddel kapcsolatban:
A file előző tartalmát úgy tarthatod meg ha felülírás helyett hozzáfűzéssel írod ki azt.
Továbbá: csak a RichTextBox alkalmas stílusok kezelésére, de ezt én még nem igazán használtam.
Tudod mit javasoltam már korábban is; MSDN!!! :)


csüt. ápr. 05, 2007 20:07
Profil Privát üzenet küldése
ezüst tag
Avatar

Csatlakozott: hétf. feb. 05, 2007 9:47
Hozzászólások: 79
Tartózkodási hely: Ausztrália
Hozzászólás 
egyire nem kell tolongani a válaszal, főleg, mert vane gy fontosabb és komplexebb kérdésem:
van egy szövegdobozom. Ha oda beírunk valamit, pl egy nevet, aztán hozzáagyuk egy legördülö menühöz, vagy sima menühöz vagy akáérmihez az item.add-al, aztán ha lett 5-6 név, akor hogyan lehet ebből egy tömböt létrehozni? a buktató az hogy nem lehet előre definiálni a tömböt pl5 emberel mert lehet hogy 2 vagy 10 vgay 200 tagja lesz...
és mint azt már kérdeztem, és kiderült nem lehet megváltoztatni a tömb tagjainak számára vonatkozó beálítűsokat.


...


csüt. ápr. 05, 2007 14:27
Profil Privát üzenet küldése
ezüst tag
Avatar

Csatlakozott: hétf. feb. 05, 2007 9:47
Hozzászólások: 79
Tartózkodási hely: Ausztrália
Hozzászólás 
az a kérdésem lenne, megina a fájlbaírással kapcsolatban(már én is unom, de ez van :D )
hogy hogyan lehet egy szöveges fájlt elmenteni, meg betölteni, de:Ű
ha elmentem ne törölje ki azt, ami előte bene volt, hameg viszaolvasom, akor ne trölje ki az entereket.

és végezetül egy szövegdobozban hogyan leheta szöveg különböző részeinek különböző tulajdonságokat rendelni, pl más méret, más szín.

köszönöm a segítséget


kedd ápr. 03, 2007 16:08
Profil Privát üzenet küldése
ezüst tag
Avatar

Csatlakozott: hétf. feb. 05, 2007 9:47
Hozzászólások: 79
Tartózkodási hely: Ausztrália
Hozzászólás 
jól emlékeztél, köszönöm


szomb. márc. 24, 2007 14:07
Profil Privát üzenet küldése
gyémánt tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 4886
Hozzászólás 
Szerintem IsNumeric(TextBox.Text), de ezt csak emlékezetből írom.


pén. márc. 23, 2007 12:25
Profil Privát üzenet küldése
ezüst tag
Avatar

Csatlakozott: hétf. feb. 05, 2007 9:47
Hozzászólások: 79
Tartózkodási hely: Ausztrália
Hozzászólás 
pedig nekem pont az kéne...

következő kérdés(megtudom xcsinálni, de csak bonyolultul):
hogyan lehet egyszerűen eldönteni, hogy egy textbox.text-e szöveg, vagy csak szám? (a nullorempty nem jó!)


pén. márc. 23, 2007 11:04
Profil Privát üzenet küldése
arany tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 459
Tartózkodási hely: Tatabánya
Hozzászólás 
Egy tömb dimenzióját (dimenzióit) szeretnéd megváltoztatni?
Arra a ReDim parancs alkalmazható.

Kód:
Dim adat(3, 4)
...
ReDim adat(12, 16)

Egyre kell ügyelni: a dimenziók száma nem változtatható meg.
Tehát a következő kifejezés helytelen:

Kód:
Dim adat(3, 4)
...
ReDim adat(3, 4, 5)


csüt. márc. 22, 2007 17:12
Profil Privát üzenet küldése
ezüst tag
Avatar

Csatlakozott: hétf. feb. 05, 2007 9:47
Hozzászólások: 79
Tartózkodási hely: Ausztrália
Hozzászólás 
hogyan lehet egy változót pl:
dim ember() as string-et
a ()-ben lévő értékét megváltoztatni programilag?


szer. márc. 21, 2007 20:27
Profil Privát üzenet küldése
arany tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 459
Tartózkodási hely: Tatabánya
Hozzászólás 
Én még nem találkoztam vele.


hétf. márc. 19, 2007 22:01
Profil Privát üzenet küldése
ezüst tag
Avatar

Csatlakozott: hétf. feb. 05, 2007 9:47
Hozzászólások: 79
Tartózkodási hely: Ausztrália
Hozzászólás 
van valahol valami magyar dokumentációja a .NET Framework fejlesztőkörnyezetnek?
(ezen a fórumon kívül :D )


hétf. márc. 19, 2007 21:04
Profil Privát üzenet küldése
ezüst tag
Avatar

Csatlakozott: hétf. feb. 05, 2007 9:47
Hozzászólások: 79
Tartózkodási hely: Ausztrália
Hozzászólás 
nekem nem úgy kéne portvezérlés, hogy egy stringet küldünk ki rajta, hanem úgy, hogy pl. 5 másidpercig adunk ki feszültslget a nyomtatóport egyik lábán.

de ezekszerint ezt nemlehet. :(


vas. márc. 18, 2007 11:19
Profil Privát üzenet küldése
arany tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 459
Tartózkodási hely: Tatabánya
Hozzászólás 
Csak a Serial Portról találtam infót.

http://msdn2.microsoft.com/en-us/library/e4560dx9(VS.80).aspx

Megj.: Mivel a VB2005 teljesen a .NET Framework fejlesztőkörnyezetre támaszkodik, a programozáshoz annak ismerete szükséges.
Ez vonatkozik a Visual Studio többi nyelvére is.


szomb. márc. 17, 2007 13:46
Profil Privát üzenet küldése
ezüst tag
Avatar

Csatlakozott: hétf. feb. 05, 2007 9:47
Hozzászólások: 79
Tartózkodási hely: Ausztrália
Hozzászólás 
akor ezentúl énis csak ezt másolom ki.
Hogyan lehet vb-alatt portot vezérelni?


szomb. márc. 17, 2007 11:32
Profil Privát üzenet küldése
arany tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 459
Tartózkodási hely: Tatabánya
Hozzászólás 
Pedig semmi különlegesség nincs a dologban.
A futtatható fájlt én a következő helyről másoltam ki:
...\Visual Studio 2005\Projects\Hullám2\Hullám2\bin\Release\
Így nem kell azt más gépen telepítgetni, hanem kapásból futtatható.


szer. márc. 14, 2007 17:27
Profil Privát üzenet küldése
ezüst tag
Avatar

Csatlakozott: hétf. feb. 05, 2007 9:47
Hozzászólások: 79
Tartózkodási hely: Ausztrália
Hozzászólás 
Zsora:
Hogyan tudod úgy lefordítani exe-be, hogy fut más gépeken is, mert ha én csak simán kimásolom a projekt mappából, akkor nemmegy más gépeken?


szer. márc. 14, 2007 15:01
Profil Privát üzenet küldése
arany tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 459
Tartózkodási hely: Tatabánya
Hozzászólás 
Azt hiszem sikerült! :D

Kód:
' Lezárás
            R = Math.Sqrt(m(db) * Dc)
            F = Dc * (y(db - 1) - y(db))
            dv(db) = F / R - v(db)

Sajnos az integrálási pontatlanságok miatt nem tökéletes a lezárás, van egy kevés reflexió.

Hát akkor jöjjön a következő megoldandó probléma: :D
Ennek a modellnek van 2 dimenziós változata is. (A Progi és az egyszerűsített változat Forrása itt.)
Vajon annál is megoldható az illesztett lezárás?
Na ez már keményebb diónak tűnik!


kedd márc. 13, 2007 21:32
Profil Privát üzenet küldése
gyémánt tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 2584
Tartózkodási hely: miskolc
Hozzászólás 
ok utánna már én is rájöttem


kedd márc. 13, 2007 18:25
Profil Privát üzenet küldése
arany tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 459
Tartózkodási hely: Tatabánya
Hozzászólás 
energoman:
A programom nem tartalmaz függvényeket, nincs benne sem omega, sem t. Na jó, t az van benne, de igazából nem szükséges, egységnyinek lehet venni. A hullám terjedési sebességét csak a D és m értékek fogják meghatározni és persze az időalap.
A felhasznált mechanikai képletek:

F=D*x (rugóerő = rugóállandó * megnyúlás)
dv=a*t=F/m*t (sebességváltozás = erő / tömeg * időváltozás)
s=v*t (út = sebesség * idő)

Erre a három alapösszefüggésre épül az egyész hullámmozgás.
Az ezzel analóg villamos mennyiségek és összefüggések:

U=1/C*Q (feszültség = 1 / kapacitás * töltés)
dI=U/L*t (áramváltozás = feszültség / induktivitás * időváltozás)
Q=I*t (töltés = áramerősség * idő)

A távíróegyenletből számolt bemenő impedancia (veszteségmentes esetben):
Zo=sqr(Z/Y)=sqr(L/C)
Z - az egységnyi vezetékszakasz impedanciája
Y - az egységnyi vezetékszakasz admittanciája
L - az egységnyi vezetékszakasz soros induktivitása
C - az egységnyi vezetékszakasz párhuzamos kapacitása
Ha a Zo hullámimpedanciájú tápvonalat ugyanekkora értékű óhmikus ellenállással zárjuk le, nem következik be reflexió a vonal végén.
Na ezzel analóg módon kell megoldani a problémát a mechanikai modell esetén is. Nekem erre ez jött ki:
Zo=sqr(m*D) [Ns/m] és Zo=F/v
A mechanikai ellenállás tehát egy erő hatására létrejövő sebességet jelent, ami tulajdonképpen felfogható súrlódásnak ill. közegellenállásnak.
Már csak a megvalósítás hiányzik... :)


A hozzászólást 1 alkalommal szerkesztették, utoljára Zsora kedd márc. 13, 2007 18:38-kor.



kedd márc. 13, 2007 18:14
Profil Privát üzenet küldése
gyémánt tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 2584
Tartózkodási hely: miskolc
Hozzászólás 
akkor lehet az a megoldás ha:
m (tömeg) tart a végtelenhez, szóval minél nagyobb annál keveésbé érvényesül a reflexió
vagy az
F (erő) tart a nullához, amit tényleg be tusz épiteni ugy hogy minden ciklus után beteszel egy mü-t mondjuk ugy hogy annak az értéke az előző ciklus számitásakor keletkező x=db-helyen lévő (y(x)-y(x-1))*cD/F=mü értéket használja és ezt a müt teszed be az uj ciklusba F =mü( Dc * (y(x - 1) - y(x)) + Dc * (y(x + 1) - y(x)))
itt megint kapcs egy uj mü-t és igy tovább.....

üdv

Megj.:lehet teljesen hüleség amit irtam.


kedd márc. 13, 2007 18:01
Profil Privát üzenet küldése
gyémánt tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 2584
Tartózkodási hely: miskolc
Hozzászólás 
Bocs eszebe se jutott hogy idelinkelted a forráskódot! :)


kedd márc. 13, 2007 17:42
Profil Privát üzenet küldése
ezüst tag
Avatar

Csatlakozott: hétf. feb. 05, 2007 9:47
Hozzászólások: 79
Tartózkodási hely: Ausztrália
Hozzászólás 
Zsora:
csak egy kósza tipp és lehet hogy roszabb, mint hatásosabb, de mivan akkor ha az utolsó golyó senem rögzített, senem szabadon mozgó?
pl: fele annyira hat csak rá a mellete lévő golyó, vagy csak fele olyan magasra tud elmozdulni?


kedd márc. 13, 2007 13:30
Profil Privát üzenet küldése
gyémánt tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 2584
Tartózkodási hely: miskolc
Hozzászólás 
Én nem szereték áttérni, csak egyik ismerősömnek kellett, és ugy kézenfekvőek a parancsok csak ugye ahány nyelv annyi szintaktika.

Zsora:
Szóval van egy egyenleted, ami előállitja az idelinkelt mozgást.
Ezt az egyenletet deriváld le omegaT szerint (mert gondolom van benne) és ami maradt konstans vagy vizikai változó, azokat kell olyan előállirásokkal ellátni hogy nullák legyenek, tehát a mozgás során a derivált értékét is kell folyamatosan számolni és az ebböl kiszámolt konstansokat majd ogye ezeket nullázni és visszahelyettesiteni az eredeti f(omegaT) egyenletbe és talán eltünik a reflexió, de nem 100%
ez egy kóbor ötlet volt!
üdv
energo


kedd márc. 13, 2007 9:31
Profil Privát üzenet küldése
ezüst tag
Avatar

Csatlakozott: hétf. feb. 05, 2007 9:47
Hozzászólások: 79
Tartózkodási hely: Ausztrália
Hozzászólás 
energoman:
én is rátérek az MSDN-re :D
http://msdn2.microsoft.com/en-us/library/zc1dyw8b.aspx

Zsora:
Nem semmi ez a program, nem is tudtam, hogy a vb ilyenre is képes.
Ha megtudod oldani, eltudod küldeni, mert engem is érdekel nek a modellezőprogramok.


hétf. márc. 12, 2007 20:17
Profil Privát üzenet küldése
arany tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 459
Tartózkodási hely: Tatabánya
Hozzászólás 
Egy rövid példa:

Kód:
Dim Brush1 As New SolidBrush(Color.AliceBlue)
Brush1.Color = Color.FromArgb(Alpha, Red, Green, Blue)
CreateGraphics.FillRectangle(Brush1, 10, 10, 50, 30)

Egyébként nem egészen értem az általad leírtakat.


hétf. márc. 12, 2007 16:53
Profil Privát üzenet küldése
gyémánt tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 2584
Tartózkodási hely: miskolc
Hozzászólás 
véleményem szerint reflexió akkor nem fod kezdődni ha az adott (ugy látom az 4) priódus alatt a df(x)/d(omegaT) zérussá válik. Rosszul fogalmaztam ha nem válik zérussá akkor a maradék tagokban szereplő változóknak kell olyan feltételt adni hogy mégis zérussá regyék a diffi hányadost. Ilyen a teáltalad elmitett surlódás kényszermozgás....

Most lehet hülyeséget mondtam!


MÁS!

Nem tudja valaki fejböl gyorsan megmondani hogy hogyan lehet a VB-ben tetszőleges szint deffiniálni a három alapszin megadásával???

üdv
energo


hétf. márc. 12, 2007 15:53
Profil Privát üzenet küldése
arany tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 459
Tartózkodási hely: Tatabánya
Hozzászólás 
Na most én teszek fel kérdést. :D
A problémám nem igazán a VB 2005-höz kapcsolódok, de mégcsak nem is programozástechnikai, inkább fizikai jellegű.
Korábban már közzétettem egy kis progit ami 2 dimenziós térben terjedő transzverzális hullámokat szimulált. Ennek az 1 dimenziós változatát szeretném most finomítani egy kicsit.
(A Progi és a Forrás itt található. Bal egérgomb = start, jobb = pause be/ki, középső = hullám stop/start)

A modell:
Van néhány golyóm sorban egymás mellett (vízszintesen), melyek rugókkal kapcsolódnak egymáshoz. A golyók csak függőlegesen képesek elmozdulni. A rugók egységesen Dc rugóállandóval jellemezhetők, a megnyúlásukat a két szomszédos golyó függőleges távolsága adja. (A rugók megnyúlásának csak a függőleges komponensét vesszük, mert transzverzális hullámot szimulálunk!) A megnyúlás hatására bennük F rugóerő ébred. A golyókat m(x) tömeggel, v(x) sebességgel és y(x) kitéréssel jellemezzük. A kitérés alaphelyzetben 0, és pozitív ill. negatív értékeket vehet fel. Minden golyóra hat a két szomszédos rugóban ébredő erő.
A legelső golyónak kötött a mozgása, időben szinuszosan változik a függőleges kitérése pl. +100 és -100 között. A legutolsó golyó viszont rögzített a 0 pozícióban (kötött vég), vagy szabadon mozoghat és csak a tőle balra lévő rugó hat rá (szabad vég).

A golyósort akár szabad-, akár rögzített véggel zárjuk le, reflexió keletkezik. Szabad végről a hullám azonos fázisban, kötött végről viszont ellentett fázisban verődik vissza.

A kérdés: Mivel kell lezárnom a golyósort hogy ne legyen reflexió?
Eddig súrlódással próbálkoztam, de valamiért nem akart összejönni a dolog. Most éppen a távíróvezeték analógiáján próbálok elindulni, de még nem jutottam eredményre.

Minden segítséget előre is köszönök!


vas. márc. 11, 2007 15:22
Profil Privát üzenet küldése
ezüst tag
Avatar

Csatlakozott: hétf. feb. 05, 2007 9:47
Hozzászólások: 79
Tartózkodási hely: Ausztrália
Hozzászólás 
megoldottam :D . kivételesen nem kel segítség :D Ha valakinek kell a program, írjon.


kedd márc. 06, 2007 17:32
Profil Privát üzenet küldése
ezüst tag
Avatar

Csatlakozott: hétf. feb. 05, 2007 9:47
Hozzászólások: 79
Tartózkodási hely: Ausztrália
Hozzászólás 
windows xp sp2-mvan
és fenn van a windows installer szerintem, mert már mást is publikáltam ezzel, és ment, meg a telepítésnél mindent választottam(visual basic, sql, msdn)bár ezeknek egyike se utal a windows installere. Meg nekem nem is muszáj a w.i. 3.1 felőlem akármi lehet, csak exe-legyen


kedd márc. 06, 2007 13:13
Profil Privát üzenet küldése
arany tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 459
Tartózkodási hely: Tatabánya
Hozzászólás 
A hibát ezúttal a Windowsban kell keresni.
Az aktuális frissítések és patchek fent vannak?
Úgy látom a Windows Installer 3.1-et nem találja. Nem ártana telepíteni.
Mintha a területi beállítások sem stimmelnének...
Háááát...

Egyébként meg én sosem használom a publish funkciót. Egyszerűen felteszem a kész futtatható állományt vagy a forrást egy tárhelyre, ahonnan aztán bárki letöltheti.


hétf. márc. 05, 2007 20:44
Profil Privát üzenet küldése
ezüst tag
Avatar

Csatlakozott: hétf. feb. 05, 2007 9:47
Hozzászólások: 79
Tartózkodási hely: Ausztrália
Hozzászólás 
Nagy M-betűvel MŰKÖDIK!!!!!!!!
Köszönök mindent!!!
Teljesen kész, tökéletesen működik minden helyzetben. Már csak publikálni kell. Már több projektel csináltam ezt, nemgond. De ez a projekt nem hagya magát ilyen könnyen megbeszélni egy fórumba, még egy gondot gördít elénk.
Amikor Publikálni akartam(És ZSorának küldeni egy díszpéldányt) :D akkor ezt lett:
http://esoma.atw.hu/baj2.png
Most mittegyek?


hétf. márc. 05, 2007 20:22
Profil Privát üzenet küldése
arany tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 459
Tartózkodási hely: Tatabánya
Hozzászólás 
Kód:
Imports System.IO

Public Class Form1
    Dim GOMB(8) As Integer
    Dim HANG(8) As String
    Dim FILE_NAME As String = "C:\Save.bin"

    Public Sub Write()
        ' Bináris file létrehozása és megnyitása írásra
        Dim fs As New FileStream(FILE_NAME, FileMode.Create)
        Dim w As New BinaryWriter(fs)
        Dim i, j As Integer
        ' Gombok mentése
        For i = 1 To 8
            w.Write(GOMB(i))
        Next i
        ' Hangok mentése
        For i = 1 To 8
            w.Write(Len(HANG(i)))
            For j = 1 To Len(HANG(i))
                w.Write(Asc(Mid(HANG(i), j, 1)))
            Next j
        Next i
        w.Close()
        fs.Close()
    End Sub

    Public Sub Read()
        ' Bináris file megnyitása olvasásra
        Dim fs As New FileStream(FILE_NAME, FileMode.Open, FileAccess.Read)
        Dim r As New BinaryReader(fs)
        Dim i, j As Integer
        ' Gombok betöltése
        For i = 1 To 8
            GOMB(i) = r.ReadInt32
        Next i
        ' Hangok betöltése
        For i = 1 To 8
            HANG(i) = ""
            For j = 1 To r.ReadInt32
                HANG(i) += Chr(r.ReadInt32)
            Next j
        Next i
        r.Close()
        fs.Close()
    End Sub

    End Class


vas. márc. 04, 2007 23:30
Profil Privát üzenet küldése
arany tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 459
Tartózkodási hely: Tatabánya
Hozzászólás 
Na szóval...
Van tehát 16 változónk; 8 integer és 8 sztring. Pont ilyen sorrendben.
Az integer változók egy-egy billentyűkódot tárolnak 32 biten. Pl.: 65
A sztringek pedig egy-egy fájl elérési útját és nevét tartalmazzák, a hosszuk bármekkora lehet. A nulla hossznak persze nincs értelme, mivel az nem jelöl fájlt. (Ezek ugye hangfájlok, amiket le kell játszani?)
Tehát valahogy így néz ez ki, ugye?:

1. 65 (Keys.A)
...
8. 127
9. "C:\Hang1.wav"
...
16. "C:\Hang8.wav"

Ezeket egy-egy változó tárolja: Gomb(1...8 ) ill. Hang(1...8 )
Ezeket a változókat kell tehát menteni, ill. ezekbe kell majd visszatölteni az elmentett tartalmakat.


vas. márc. 04, 2007 22:09
Profil Privát üzenet küldése
ezüst tag
Avatar

Csatlakozott: hétf. feb. 05, 2007 9:47
Hozzászólások: 79
Tartózkodási hely: Ausztrália
Hozzászólás 
egész ódát írtam ide, de mire megírtam, kiléptetett az a rohadt rendzser! :cry: :cry: :cry: :(
tehát röviden: amit írál értem, az 1-0-t tudtam :D .
Tehát:
18 változó:
gomb1-gomb8
hang1-hang8
a gombok pl"c:\mentes.sin"
a hangok pl: "keys.A"
ezeket kell lementeni, és viszatölteni. Ha veszem a fáradtságot, megismétlema keserves 30 percet és léeírok mindent.


vas. márc. 04, 2007 19:49
Profil Privát üzenet küldése
arany tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 459
Tartózkodási hely: Tatabánya
Hozzászólás 
SIS:
Mit is köszöntél meg, hiszen nem segítettem neked?
Nem azért mert nem akartam, hanem mert sajnos nem tudtam.
Én csak VB2005 alatt programozok, a régebbi verziókkal (VB6 és azalatt) nem foglalkoztam sosem. De azt tudom hogy azok teljesen más utasításokat használnak, és a logikájuk is sokban különbözik.
Pontosan miről is lenne szó? Nem egészen világos a probléma.

esoma:
Most már végképp nem értem hogy mit nem értesz. :-)
Van egy ötletem: Pontosan írd le hogy mit szeretnél, mit kell a proginak megcsinálnia! Töviről hegyire! Úgy ahogy egy tök hülyének magyaráznád. Mit kell pontosan elmenteni? Változókat? Milyeneket? Milyen méretűeket? Mennyit? Milyen sorrendben?
Ahhoz hogy megoldást találjunk, pontosan kell ismerni a problémát.

Mint ahogy már korábban leírtam, a Keys.A egy változó, egy szám; 65. És nem kell azt alakítgatni, mert a VB is számként kezeli.
Sok más ilyen számváltozót használ még a VB, ezekre azért lehet névvel hivatkozni hogy egyszerűbb legyen őket megjegyezni. Éppen úgy mint a matekban a Pi szám; csak a görög pi betűvel hivatkozunk rá, holott tudjuk hogy az egy szám, aminek az értéke kb. 3.14159265.
Egy szövegfájl sem betűket tárol, hanem számokat; a karakterek kódját, ami egy 8, 16 v. 32 bites szám. Csak a képernyőn való megjelenítéskor kapják meg a betűk az ismert alakjukat. A számítógépek mindent számokként tárolnak, méghozzá bináris számrendszerben. Egy digitális számítógép csak az egyeseket meg a nullákat ismeri alapból. Már az Assembly nyelv is egy könnyítés a gépikódhoz képest, mi lenne ha úgy kellene ma is programozni? A mnemonikok helyett hexadecimális v. bináris számok ezreit kellene bepötyögni... :D

Visszatérve az A billentyűkódra:
Az If e.KeyCode = Keys.A Then Me.Close() kifejezés teljesen egyenértékű az If e.KeyCode = 65 Then Me.Close() kifejezéssel, ugyanis Keys.A = 65.
Az egyszerű billentyűkódok (vagy karakterkódok) persze átalakíthatók szöveges változókká, ha szükséges. Erre jó pl. a Chr() függvény. Chr(65) = "A". Ez viszont speciális karaktereknél nem használható, de ez teljesen érthető is.


vas. márc. 04, 2007 13:00
Profil Privát üzenet küldése
ezüst tag
Avatar

Csatlakozott: hétf. feb. 05, 2007 9:47
Hozzászólások: 79
Tartózkodási hely: Ausztrália
Hozzászólás 
bocs, de még mindiog nem értem, ebbe a 16 változót hogyan lehet beletenni. mindig aláhúzza. Csak a Sztring-et menti el.
ui: és a 65-öt hogyan lehet visza keys.a -nak konvertálni? nem lehet azt is sztringnek elmenteni?


vas. márc. 04, 2007 10:23
Profil Privát üzenet küldése
arany tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 226
Tartózkodási hely: Békés megye
Hozzászólás 
Zsora nagyon szépen köszönöm, itthon nem tudom kipróbálni, remélem ez alapján sikerül. És ugye még kérdezhetek, ha elakadok? :D


vas. márc. 04, 2007 7:24
Profil Privát üzenet küldése
arany tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 459
Tartózkodási hely: Tatabánya
Hozzászólás 
A fenti példában a SZTRING nevű sztringet 14db Integer-ként (azaz 32bites előjeles egész változó, ami 4byte hosszú) tárolja el, mivel 14 karakterből áll. (A szóköz is karakter, így összesen 14×4 byte hosszú lesz a fájlban a SZTRING változó.)
Előtte elmenti a SZTRING karakterben mért hosszát is, ez 14, és 4 byte-ot foglal.
A billentyűkódok pedig természetesen 32 bites egész számok (4 byte), és az A betű kódja 65. Nem egy A karakter tárolódik. Gondolj csak bele; hogyan tárolnánk a speciális billentyűk kódjait, amik lenyomásakor nem is kapunk írásjeleket, hanem csak módosítanak vagy egy alkalmazást indítanak el? (pl. Shift, Ctrl, F1, WWW, E-mail, Play, stb.)

A fenti példa tehát összesen 17db Integert ment el, ami 68 byte hosszú fájlt eredményez. Ez a példa tökéletesen elegendő, hogy megírd a programodat. Csak nyisd meg a fájlt pl. Notepaddel, és látni fogod a tartalmát!
Az elmentett 32bites számok rendre:
25 (a 25-ös szám :) )
65 (az A billentyűkód, ami megegyezik az ASCII kódjával is)
14 (a SZTRING változó byte-okban mért hossza)
69, 122, 32, 101, 103, 121, 32, 115, 122, 116, 114, 105, 110, 103 (az "Ez egy sztring" karaktersorozat)

Arra azonban vigyázz, hogy ha már egyszer létrehozta a progi a fájlt, akkor már nem hozhatjuk újra létre, tehát úgy kell megnyitni írásra, mint már létező fájl! A tartalmát töröljük, és új tartalmat adunk neki. Vagy töröljük magát a fájlt és újra leétrehozzuk.
Olvasásnál hasonló a helyzet; csak akkor tudjuk beolvasni ha már létezik.
Ehhez kell használni a fentebb már leírt File.Exists() parancsot.
(A parancs kiadása előtt importálni kell a System.IO classt a progi elején. Ennek hiányában az utasítás helyes szintaktikája: System.IO.File.Exists(). Ez vonatkozik minden fájlművelettel kapcsolatos utasításra.)


szomb. márc. 03, 2007 11:08
Profil Privát üzenet küldése
ezüst tag
Avatar

Csatlakozott: hétf. feb. 05, 2007 9:47
Hozzászólások: 79
Tartózkodási hely: Ausztrália
Hozzászólás 
köszönöm az újboli kódot, ebbe már sikerült életet lehelnem, de nem tudom, hogyan lehet a SZTRING stringet 16 változóba beletenni. A két kód kombinálásával születhet meg a 16 változót binárisan lementő, majd visszaolvasó kód.
Nemtudom, hogy ez baj-e vagy direkt, de a keys.A-t 65 nek olvassa vissza.
Köszönöm türelmedet és segítségedet


szomb. márc. 03, 2007 9:52
Profil Privát üzenet küldése
arany tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 459
Tartózkodási hely: Tatabánya
Hozzászólás 
A sztringek elmentését úgy lehet megoldani, ha karakterek helyett karakterkódokat mentesz el, és a sztringek hosszát.
Pl. 2 byte-on tárolod a változó hosszát (n), majd ezt követik az egyes karakterek 2 byte-os kódjai (n×2byte).
A billentyűkódok hasonlóan tárolhatók. Semmi nehézség nincs benne.
Az is adott, hogy sorjában milyen típusú változókat kell beolvasni, tehát a visszaállítás is egyszerű. De ha nincs előre meghatározva a mentett változók típusa, akkor egy típust jelölő 1 v. 2 byte-os változóval utalhatsz rá, hogy milyen típusú változó következik a beolvasásban.

Aztán ennek fordítottja is elképzelhető:
Az egyes változókat külön sorba mented le, de nem bináris hanem szöveges állományba. A sztringekkel nincs is gond, a numerikus változókat viszont sztringgé kell előtte alakítani, ez sem probléma. A billentyűkódokat úgyszintén...

És jöjjön egy újabb példaprogram:
Kód:
Imports System.IO

Public Class Form1
    Dim DATA As Integer = 25
    Dim KEY As Integer = Keys.A
    Dim SZTRING As String = "Ez egy sztring"
    Dim FILE_NAME As String = "C:\Data.bin"

    Public Sub Write()
        ' Bináris file létrehozása és megnyitása írásra
        Dim fs As New FileStream(FILE_NAME, FileMode.CreateNew)
        Dim w As New BinaryWriter(fs)
        ' Adatok kiírása
        w.Write(DATA)
        w.Write(KEY)
        Dim i As Integer
        w.Write(Len(SZTRING))
        For i = 1 To Len(SZTRING)
            w.Write(Asc(Mid(SZTRING, i, 1)))
        Next i
        w.Close()
        fs.Close()
    End Sub

    Public Sub Read()
        ' Bináris file megnyitása olvasásra
        Dim fs As New FileStream(FILE_NAME, FileMode.Open, FileAccess.Read)
        Dim r As New BinaryReader(fs)
        ' Adatok beolvasása
        DATA = r.ReadInt32
        KEY = r.ReadInt32
        Dim i As Integer
        SZTRING = ""
        For i = 1 To r.ReadInt32
            SZTRING += Chr(r.ReadInt32)
        Next i
        r.Close()
        fs.Close()
    End Sub

  End Class

A progi egy numerikus változót, egy billentyűkódot és egy sztringet ment el binárisan, majd tölt vissza. (A sztring hosszát is elmentjük.)
Minden szám ill. betű 32 biten tárolódik.


A hozzászólást 1 alkalommal szerkesztették, utoljára Zsora vas. márc. 04, 2007 22:29-kor.



pén. márc. 02, 2007 21:26
Profil Privát üzenet küldése
ezüst tag
Avatar

Csatlakozott: hétf. feb. 05, 2007 9:47
Hozzászólások: 79
Tartózkodási hely: Ausztrália
Hozzászólás 
köszönöm a példaprogramot, kipróbáltam, de nem működik, mert egy kicsit bonyibb a probléma, ugyanis a 16 változó közül 8 string, ami közül lehet üres(!) is , valamint 8 string, amik billentyűzetkódokat tartalmaznak, pl keys.a és ezért elég nehéz ezeket lementeni.
arra is gondoltam, hogy minden változót külön fájlba ment le, és a mentésnél csak a mappa nevét kell megadni, de ez enm túl jó megoldás, jobb lenne 1 fájlba lementeni.
Úgy nemlehet megoldani, hogy minden változót külön sorba ment le(mert az első 8 változó openfiledialog.filename-eket tartalmaz)
és a betöltésnél minden sort 1 változónak menti le.
Ez lehetséges?
Tudom nagyon sokat kérdezek, de ebből tanulok :D , és ha ez megvan, akor kész a program, aki kéri átküldöm, :D és ha Zsora kéri, beleírhatom a nevét, mint segítő és tanácasdó :D
Köszönöm a segítséget


pén. márc. 02, 2007 19:15
Profil Privát üzenet küldése
arany tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 459
Tartózkodási hely: Tatabánya
Hozzászólás 
SIS:
A VB3.0 és a VB2005 között óriási különbség van. Sajnos a régebbi VB verziókhoz nem értek, így nem tudok neked segíteni.

esoma:
A file-műveletekről korábban már volt szó, adtam hozzá linkeket is.
Na jó, itt egy rövid példa: :D

Kód:
Imports System.IO

Public Class Form1
    Dim DATA(16) As Integer
    Dim FILE_NAME As String = "C:\Data.bin"

    Public Sub Write()
        ' Bináris file létrehozása és megnyitása írásra
        Dim fs As New FileStream(FILE_NAME, FileMode.CreateNew)
        Dim w As New BinaryWriter(fs)
        ' Adatok kiírása
        Dim i As Integer
        For i = 1 To 16
            w.Write(Data(i))
        Next i
        w.Close()
        fs.Close()
    End Sub

    Public Sub Read()
        ' Bináris file megnyitása olvasásra
        Dim fs As New FileStream(FILE_NAME, FileMode.Open, FileAccess.Read)
        Dim r As New BinaryReader(fs)
        ' Adatok beolvasása
        Dim i As Integer
        For i = 1 To 16
            Data(i) = r.ReadInt32()
        Next i
        r.Close()
        fs.Close()
    End Sub

  End Class

A Write rutin menti el a 16 egész változót, a Read rutin pedig beolvassa őket. Természetesen a hibakezelő rutinokat a példaprogi nem tartalmazza, amiket persze érdemes megírni. (Nem létező file olvasása, már létező file írása, stb.)
Egy file meglétét a következőképpen ellenőrizhetjük:

Kód:
If File.Exists(FILE_NAME) = True Then ...


csüt. márc. 01, 2007 18:36
Profil Privát üzenet küldése
arany tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 226
Tartózkodási hely: Békés megye
Hozzászólás 
Sziasztok,

a kérdésem VB 3.0-ás fejlesztői környezetre vonatkozik, de gondolom 2005-ben is hasonlóképpen kell megoldani, mert nem túl összetett a problémám. Egy BMP állományt szeretnék megnyitni csak nyomtatásra egy vonalkódos programban úgy, hogy az ábra után egyazon sorba egyéb szöveget is szeretnék nyomtatni. Aki le tudná írni pár sorban, azt meghálálnám.

Előre is köszönet a segítségért.


csüt. márc. 01, 2007 13:13
Profil Privát üzenet küldése
ezüst tag
Avatar

Csatlakozott: hétf. feb. 05, 2007 9:47
Hozzászólások: 79
Tartózkodási hely: Ausztrália
Hozzászólás 
ahhoz, hogy elkészüljön a program, még 1 dolog fontos lenne:
hogyan lehet 16 változót a program bezárásakor lementeni fájlba, vagy akármibe, és a következő indításkor visszatölteni?


szer. feb. 28, 2007 19:04
Profil Privát üzenet küldése
ezüst tag
Avatar

Csatlakozott: hétf. feb. 05, 2007 9:47
Hozzászólások: 79
Tartózkodási hely: Ausztrália
Hozzászólás 
tökéletesen érthető :D
köszönöm.
sokat segítettél


szer. feb. 28, 2007 17:02
Profil Privát üzenet küldése
arany tag
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 459
Tartózkodási hely: Tatabánya
Hozzászólás 
A VB2005-ben minden eseményekről (events), tulajdonságokról (properties) és eljárásokról (procedures) szól.

Tehát:
Ha egy billentyűt lenyomunk, az egy eseményt generál. Ez az esemény elindítja a hozzátartozó eseménykezelőt (Event Handler), ami feldolgozza azt.
A formnak 3 ilyen eseménye van:
KeyDown - egy billentyű lenyomása
KeyUp - egy billentyű felengedése
KeyPress - egy billentyű lenyomása, majd felengedése
Ahhoz hogy a form billentyűzetkezelését saját magunk tartsuk kézben, a KeyPreview tulajdonságot igazra (true) kell állítani.

És most jöjjön egy kis példaprogram:
Kód:
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Me.KeyPreview = True
End Sub

Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
        If e.KeyCode = Keys.Q Then Me.Close()
End Sub

Az első eseménykezelő (Form1_Load) a form betöltődésekor a KeyPreview tulajdonságot állítja igazra. Ezután már szabadon rendelkezhetünk a billentyűk ellenőrzése felett.
A következő eseménykezelő (Form1_KeyDown) egy billentyű lenyomása esetén ellenőrzi annak kódját, és ha az egyezik a Q billentyű kódjával, akkor bezárja a formot.
Remélem érthető!


vas. feb. 25, 2007 23:57
Profil Privát üzenet küldése
Hozzászólások megjelenítése:  Rendezés  
Hozzászólás a témához   [ 132 hozzászólás ]  Oldal Előző  1, 2, 3  Következő

Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 4 vendég


Nem nyithatsz témákat ebben a fórumban.
Nem válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.

Keresés:
Ugrás:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Magyar fordítás © Magyar phpBB Közösség