- Intel Core i3 / i5 / i7 / i9 10xxx "Comet Lake" és i3 / i5 / i7 / i9 11xxx "Rocket Lake" (LGA1200)
- Melyik tápegységet vegyem?
- Hobby elektronika
- Kompakt vízhűtés
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Épített vízhűtés (nem kompakt) topic
- Milyen videókártyát?
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- OLED TV topic
- Videós, mozgóképes topik
Új hozzászólás Aktív témák
-
-
ArchElf
addikt
-
ArchElf
addikt
Úgy rémlik, hogy az automata üzenetküldö férgek letöréséért a nem Office-ból meghívott Outlook objektumok nem tudnak automatikusan levelt küldeni. Van valami registry beállítás (vagy group/local policy elem), amin keresztül ezt lehet engedélyezni. De nagyon rég volt már amikor ezzel szmbekerültem (6-7 éve), szóval egy kis googlizásba belekerül, mire megtalálom...
Esetleg próbáld meg C# (.NET) alkalmazással...
AE
-
ArchElf
addikt
document.getElementById("orszagok").value
RadioButton esetén is működik, ha van ID property-je... Nálad nem volt.Amúgy meg RadioButtonra ott a
document.getElementsByName("szin")
Ezen egy foreach-el végignyomulsz, és megnézed melyik value melett igaz a checked property...AE
-
-
ArchElf
addikt
Általában az elérhető HW/SW sorozatszámokból készít egy hash-t amit valami olvasható formába alakít (mint amit te is írtál), az lesz a kulcs és abból a kulcsból generálja a cég válaszkulcsot.
Nem közvetlenül használja fel az elérhető hw/sw kulcsokat, hiszen akkor túl könnyű dolga lenne a próbálkozóknak.AE
-
ArchElf
addikt
-
ArchElf
addikt
válasz
kozicsd #1583 üzenetére
C és VBA közti alapvető különbségek:
nincs { }
nincs ; a sor végén
nincs == helyette is = kell
nincs != helyette <> kell
nincs return, hanem Exit Funtion és Exit Sub
a visszaadandó értéket Function esetén a funkció nevének megfelelő változóba (nem kell inicializálni) kell tenni.
For-nak Next a párja, a break pedig az Exit For (continue nincs se for-ban, se loop-ban)
nem
if ( ... )
{ ... }
else
{ ... }
hanem
If ... Then
...
Else
...
End Ifnem
while (...)
{ ... } hanem
do while (...)
...
loop
ha egy metódus Sub és nem Function akkor nincs visszaadott érték és nem kell az argumentumokat zárójelbe tenni
Nem kell a változókat inicializálni (kivéve az osztályokat).+ van help, a metódusokat meg lehet találni benne
AE
-
ArchElf
addikt
válasz
ArchElf #1529 üzenetére
Egészbe:
Sub Main()
Dim ev As Integer
Dim szokoev As String
ev = 0
szokoev = ""
If Integer.TryParse(Console.ReadLine(), ev) Then
If (ev Mod 400 = 0) Then
szokoev = ""
ElseIf (ev Mod 100 = 0) Then
szokoev = "nem "
ElseIf (ev Mod 4 = 0) Then
szokoev = ""
Else
szokoev = "nem "
End If
Console.WriteLine("A {0}. év {1}szökőév.", ev, szokoev)
Else
Console.WriteLine("A beadott érték nem szám.")
End If
Console.ReadKey()
End SubC#-ban a % a VB-s MOD (egész osztás maradéka).
AE
-
ArchElf
addikt
válasz
erich85T #1509 üzenetére
Excel topicban szerintem hamarabb találsz megoldást
AE
-
ArchElf
addikt
válasz
Cpt. Flint #1505 üzenetére
Azért olvasgass utána, jó?
Google keresést csak akkor szoktam linkelni, ha az első oldalon nagyrészt csak releváns találatok vannak. Ebben az esetben nem szükségszerűen VBA témakörben - mivel ez az alapelv majd minden fejlesztői nyelvre azonos.
Amúgy em nagyképű itt általában senki (legalább is itt a programozás fórumon talán nem azok a befordult kockák vannak csak, mint máshol...) Másrész nem kell offenzívnek venni azt, hogy egyből az a reakció, hogy "hülyeségeket kérdezel". Attól még, hogy megsértödsz, hülye a kérdés - legalább is azt mutatja, hogy az alpokkal nagyon nem vagy tisztában. Nem probléma magában ez sem - csak nem kell feltétlen arra várni, hogy valaki megoldjon helyetted mindent - és nem kell érzelmi irányba terelni a dolgot, hiszen gyakorlati kérdésben jöttél.
Egy kis alázat nem árt, még ha nehezen is megy néha. Soha nem találkoztál az itt fórumozó emberekkel, és talán soha nem is fogsz - ha megvan a megoldás, vagy az oda vezető út, ne akadj fent azon, hogy valakinek rossz napja van. Itt mindenki önszántából magyarázná el (illetve - ha rossz napja van - éppen nem magyarázná el) 1001-szer az alapokat.Ha hobbi szinten csinálod, szánj rá - még - egy-két órát, és máris csak annyi hátrányban leszel, hogy nem tudod egyből hogy merre indulj el (nem pedig alapvető problémáid lesznek).
GetActive - ha vannak benne új dolgok (a használt TypeName függvény kivételével) - pl. rekurzió, típusok, akkor tényleg mielőbb keríts egy (alapszintű, bármilyen nyelvet bemutató) programozási könyvet. Nem bántásból mondom: 20-30 oldal után kész megvilágosodásban lesz részed, ha van érzéked a témához.
Sub csakszam(KeyCode, Shift) - ebben az esetben u.n. Varian típusra deklarálod a változókat (típus nélküli változó), ami az értékadáskor pontosítja a változó típusát. Használata mellőzendő, hacsak nem elkerülhetetlen - mivel növeli a kód bizonytalanságát. Ugyanez vonatkozik az Option Explicit-re is: célszerű használni, mert rákényszerít a pontosságra.
MaskedEdit VB6 kontrol, nem VBA (VB 6.5 = Visual Basic for Applications = gyak. Office VB). Azért nem találtad, mert valami egységcsomagban lenne benne (asszem MS Common Controls, vagy valami hasonló) - neten rá kell keresni és lehetőleg MS oldalról letölteni.
Azután ha megvan (feltelepítve), akkor először hozzá kell adni a References... hez, majd már használható lesz a kontroll-ok között.AE
-
ArchElf
addikt
válasz
Cpt. Flint #1501 üzenetére
Pedig jó volna ha megértenéd a változók hatókörét. Nem tudom milyen fejlesztési tapasztalatod lehet, de ez a VB-re nem nagyon terjed ki.
Anélkül elég nehezen tudom elmagyarázni azt, amit látsz (és nem éresz meg). De röviden azért megpróbálom:
- Ha egy függvény definíciójában van definiálva egy változó (vastaggal)
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
azt hiába definiálod előre, az adott függvényben az itt definiált "változat" fog élni.
- Ha definiálsz egy változót egy függvényben, attól még az onnan meghívott függvényekben a változó nem létezik. A változó hatóköre csak a definiálás helyére érvényes (kivétel a kód "gyökerében" globálisan definiált változók, de azok a függvényekben felüldefiniálhatók - pl. mint paraméter)
- Használd az Option Explicit parancsot (kód legelején), hogy lásd, hogy minden változód helyesen van definiálva (és nem írtál el sehol semmit). Ez az utasítás kikényszeríti a változók definiálását.Az ActiveControl az aktuális konténerben aktív kontrolt kéri le. Arra meg kell nézned, hogy Container típusú-e és vannak-e tagjai, ha iden abban is meg kell nézni, hogy van-e aktív komponens -rekurzívan el lehet jutni az utolsó tagig, ami jelen esetben a TextBox1 komponens. De a KeyCode-ot és Shift-et nem lehet nem átadni. (Ha pedig odaírod, hogy ByVal - azaz érték és nem referencia szerinti átadás van -, akkor átkonvertálja neked az MSForms.ReturnInteger-t mezei Integer-ré)
Option Explicit
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
csakszam KeyCode, Shift
End Sub
Sub csakszam(ByVal KeyCode As Integer, ByVal Shift As Integer)
Dim Vezerlo As Control
Set Vezerlo = GetActive(ActiveControl)
'MsgBox TypeName(GetActive(ActiveControl))
If TypeName(Vezerlo) <> "TextBox" Then
Exit Sub
End If
If Shift <> 0 Then
Vezerlo.Locked = True
Else
If KeyCode = 8 Or KeyCode = 46 Or _
(KeyCode >= 48 And KeyCode <= 57) _
Or (KeyCode >= 96 And KeyCode <= 105) Then
Vezerlo.Locked = False
Else
Vezerlo.Locked = True
End If
End If
End Sub
Private Function GetActive(con As Control) As Control
If TypeName(con) = "UserForm" Then
Dim f As UserForm
Set f = con
Set GetActive = GetActive(f.ActiveControl)
ElseIf TypeName(con) = "MultiPage" Then
Dim mp As MultiPage
Set mp = con
Set GetActive = GetActive(mp.SelectedItem)
ElseIf TypeName(con) = "Page" Then
Dim pg As Page
Set pg = con
Set GetActive = GetActive(pg.ActiveControl)
ElseIf TypeName(con) = "Frame" Then
Dim fr As Frame
Set fr = con
Set GetActive = GetActive(fr.ActiveControl)
Else
Set GetActive = con
End If
End FunctionAE
-
ArchElf
addikt
válasz
Cpt. Flint #1499 üzenetére
Amúgy VB6, vagy VB.NET?
Általánosságban - kicsit olvasgassál még a változók hatóköréről...
1. Hiába teszed publiccá, a függvény újra létrehozza változót és az felülcsapja (érvényességben) a globálisan létrehozott azonos nevű változót. A függvénynek át kell adni a változót. A globális változók használatát meg el kell felejteni.
2. Ha megnézed a függvény paramétereit, ott van deklarálva a változó. A függvényt meg úgy hívod meg, hogy:
csakszam TextBox1, KeyCode
ActiveControl - le kell ellenőrizni, hogy az aktuális ActiveControl TextBox-e és csak akkor kell lefuttatni a függvényt.
3. ez inkább csak hack... de azért nem rossz. De gondolom vágólap meillesztésre nem működik.
4. MaskedTextBox: vb6, vb.net
(bocs,. vb6 alatt MaskedEdit)AE
-
ArchElf
addikt
Átvihető, csak át kellene adni neki.
A változók a VB-ben nem globálisak (hacsak nem annak lettek definiálva), a hatókörük csak az adott szerkezetre (szubrutinra, osztályra) vonatkozik.
így add át neki:
Sub csakszam(tb As TextBox, kc As Integer)
'8: backspace, 9: tabulátor, 13: enter, 17: Ctrl, 32: space, 46: delete, 48-57: felső számok, 86: v, 96-105: numpad számok, 109: numpad mínuszjel, 110: numpad pont, 186: é, 187: ó,
'188: vessző, 189: kötőjel, 190: pont, 191: ü, 192: ö, 219: ő, 220: ű, 221: ú, 222: á, 226:í
If kc = 8 Or kc = 46 Or _
(kc >= 48 And kc <= 57) _
Or (kc >= 96 And kc <= 105) Then
tb.Locked = False
Else
tb.Locked = True
End If
End SubAmúgy miért locked, ennek így semmi értelme nincs???
Én inkább a Changed-et használnám és megvizsgálnám, hogy az összes karakter érvényes-e (vagy egyszerűen használnék masked textbox-ot)...
AE
-
ArchElf
addikt
válasz
Brown ügynök #1474 üzenetére
Annuitásos módszernek van leírása, vagy matematikai modellje (kell hogy legyen)...?
AE
-
ArchElf
addikt
válasz
Brown ügynök #1456 üzenetére
VS2008 mellé használd az MSDN-t, és rögtön tudod, melyik osztály mit csinál.
Amúgy a leít kódodban nem az a rossz, sor, hanem az aláhúzott:
Private Sub Szamolas() Handles btnCalculate.Click
Dim Datum As Date
Dim Grid As String
Datum = DateTimePicker1.Text
Grid = Datum
End SubA Date (azaz DateTime) szerintem nem eszi meg közvetlenül a string-et, hanem fel kell dolgozni a Parse függvénnyel. Ráadásul a DateTimePicker-nek van közvetlen property-je a Dátum lekérdezásáre, ez a Value. Ha pedig DateTime-ot akarsz String-gé formázni, arra (általában minden más osztálynál is) ott a ToString metódus, ami az bject osztályból öröklődik:
Private Sub Szamolas() Handles btnCalculate.Click
Dim Datum As DateTime
Dim Grid As String
Datum = DateTimePicker1.Value
Grid = Datum.ToString()
End SubJa, és ez még semmit nem ír ki sehová
AE
-
ArchElf
addikt
-
ArchElf
addikt
válasz
martonx #1441 üzenetére
Lehet, hogy nem kell a nyomtatáshoz win api (azaz megoldható másképp is), de ez tutira nem működik VBS alatt:
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Public Declare Sub PortOut Lib "io.dll" (ByVal Port As Integer, ByVal Value As Byte)
Public Declare Function PortIn Lib "io.dll" (ByVal Port As Integer) As Byte
Innentől kezdve hiába nevezi át a fájlt, nem fog futni a WSH-ban...AE
-
ArchElf
addikt
Hol van ez futtatva (access, ha jól rémlik?)
Hirtelen ezeket találtam:
- Mi az a Bontás Pending?
- GOTO értelmetlen, használj Exit Sub-ot
- probalkozasok hol kap értéket, nincs átadva a Sub-nak, ez valami globális objektum?
- user() implementálva van?
- Ezeket mire használod?
Kiertesito1, Kiertesites1, Kiertesito2, Kiertesites2, Kiertesito3, Kiertesites3
- indentálásra figyelj:
If akármi Then
'művelet 1
'művelet 2
Else
'művelet 3
'művelet 4
End If
így legalább olvasható lesz a kód
- használj Option Explicit-et (minden változót kötelező deklarálnod Dim akármi-vel, de legalább véd az elgépelés és a túlzott mértékű változó használat ellen)AE
-
ArchElf
addikt
-
ArchElf
addikt
válasz
#90999040 #1429 üzenetére
Közvetlenül nem, kell írni hozzá egy COM Wrappert (legyen akár natív, akár .NET assembly). Pár dologra még oda kell figyelni a wrappelésnél, pl. struct nem használható. Ha valaminek a visszatérési vagy bemeneti értéke struct, akkor azt vagy szét kell szedni a com hívásban, vagy be kell csomagolni egy osztályba (és a wrapperben kibontani).
Oly: Lehet, hogy segít...
AE
-
ArchElf
addikt
válasz
#90999040 #1422 üzenetére
Rájöttem közben mi lehet a probléma...
Mivel a class futásidőben generálódik, így lehet, hogy két futáskor nem ugyanazt a signature-t adja neki a fordító. Így hiába tárolom el az osztályt egy ideiglenes tárban (a memóriában) két futtatás között, a következő futtatáskor már "más" RelStore class generálódik meg, amire a fordító nem talál leírást, és nem tud hozzáférni a metódusokhoz sem.
Megnéztem közben, a helytelenül visszaadott osztályoknál a
VarType(rs) 13-at ad vissza:
vbDataObject - 13 - A data-access object
A TypeName meg Unknown-t...
Kénytelen leszek sima stringekkel dolgozniAE
-
ArchElf
addikt
-
ArchElf
addikt
Gyors VBScript kérdés...
Csináltam egy kicsi osztályt (alant), és egy Hastable-be bepakolom (tudom talán kicsit meredek). A problémám az, hogy az egyik függvényt nem hajlandó meghívni a futtatókörnyezet...
Osztály:
Class RelStore
'Cache Time 5 min
Private d_Timer
Private b_Member
Private b_Init
Private VALIDITY
Private Sub Class_Initialize
VALIDITY = 300
d_Timer = 0
b_Member = False
b_Init = False
End Sub
Public Function Initialize(Membership)
d_Timer = Timer
b_Member = Membership
b_Init = True
End Function
Public Sub Invalidate()
Class_Initialize
End Sub
Public Function IsMember()
IsMember = b_Member
End Function
Public Function IsValid()
IsValid = (b_Init AND ((Timer > d_Timer + VALIDITY) OR (Timer < d_Timer)))
End Function
End ClassAhol kicsomagolnám a Hastable-ből:
If htCache.ContainsKey(SearchString) Then
Set rs = htCache(SearchString)
If rs.IsValid Then
IsMember = rs.IsMember
Else
IsMember = False
htCache.Remove SearchString
End If
Else
DebugWrite "Object NOT found in cache: " & SearchString
End IfHibaüzenet:
An error occurred on line 97 while executing script 'User Group Check'
Source: Microsoft VBScript runtime error
Description: Object doesn't support this property or method: 'rs.IsValid'Ja és próbáltam már így is
Public Property Get IsValid
IsValid = (b_Init AND ((Timer > d_Timer + VALIDITY) OR (Timer < d_Timer)))
End PropertyAE
-
ArchElf
addikt
Próbáld meg elötte kiválasztani a sheet-et és a cellát és utána lekérdezni. Esetleg nézz át az Excel topicba, ott sokkal több tapasztalat van az excel makrók tekintetében.
AE
-
ArchElf
addikt
válasz
papaja-xbox #1389 üzenetére
Azért mert soros/párhuzamos porti kezelést szeretnél linux alatt.
Mivel linux alá dolgozol célszerű ott támogatott nyelvet használni, ami lehet C vagy C++. De ha nincs kedved hozzá, használhatsz akár python-t is (ott is van soros portos kommunikációt támogató csomag: PySerial - ez tartalmaz parallel porti modult is)AE
-
ArchElf
addikt
válasz
papaja-xbox #1387 üzenetére
Akkor mégis látogass át a C topicba
AE
-
ArchElf
addikt
válasz
papaja-xbox #1383 üzenetére
Ubuntu + Basic? WTF???
Szerintem nézz át a C topicbaAE
-
ArchElf
addikt
válasz
papaja-xbox #1381 üzenetére
Feszültséget nem lehet módosítani (a hagyományos értelemben) LPT-n; illetve be-ki állapot van (alacsony-magas jelszint).
Milyen OS-alá készülne a program?AE
-
ArchElf
addikt
válasz
papaja-xbox #1379 üzenetére
Serialra ott az mscomm32.dll (vagy .ocx, vagy valami hasonló), formra kipakolható - nem túl okos, de használható. LPT-re google (kapásból nem tudok biztos megoldást mondani).
AE
-
ArchElf
addikt
válasz
papaja-xbox #1375 üzenetére
Kód nélkül nem túl egyszerű erre bármit is mondani...
AE
-
ArchElf
addikt
válasz
Watercolour #1367 üzenetére
nem kell ehhez makró, egy cellában ki lehet számolni az eredményt:
- ha számok mennyiságe = 1, akkor az össz idő = az egy szám lesz
- ha számok mennyiságe = 2, akkor az össz idő = a nagyobb szám lesz
- ha számok mennyiságe > 2, akkor az össz idő = az összes idő összege minusz a legrövidebb idő + (az átkelők száma - 2) szorozva a legrövidebb idővel (magyarul saját magán kívül mindenkit átkísér, és utána viszajön amíg van valaki a túlparton)
Függvényben (kicsit egyszerűsítve):
=IF(COUNT(A:A)<2; SUM(A:A);(COUNT(A:A)-3)*MIN(A:A)+SUM(A:A))AE
-
ArchElf
addikt
válasz
Dobozossör #1356 üzenetére
Szerintem ne legyen 'auto edit' jellegű megoldás, ha módosítani akar valaki egy mezőt, akkor kérdezze le a program, hogy az adott mező szerkeszthető-e, és ha igen, akkor zárolja a sort (Tranzakcióban update-eljen egy mezőt, ami a zárolást jelzi, vagy egy másik táblát, amiben a zárolások nyilván vannak tartva).
Igazából amit keresel, arra nem hiszem, hogy van dobozos megoldás - ráadásul, amit szeretnél az nem is igazán szép.
Igazi LAN-on (ahol nincs az udp multicast tiltva) elméletileg megoldható egy ilyen megoldás SQL nélkül - UDP multicastba téve a gépeket, ahol mindenki bemondja az éterbe, hogy épp mit csinál. Ám egyrészt az UDP nem megbízható (nincs garancia, hogy mindenki megkapja a csomagot és fel is dolgozza), másrészt egy nagyobb céges hálóban általában szűrve vannak a multicast hívások a VLAN-ok között. Ráadásul ebben az esetben nincs kizárás, tehát elméletileg előfordulhat, hogy "egyszerre" jelenti be mind a két gép a szerkesztést, és vagy mindkettő szerkesztő üzemmódban marad, vagy mindkettőnél letiltódik a szerkesztés (megvalósítástól függően).AE
-
ArchElf
addikt
válasz
Dobozossör #1354 üzenetére
SQL lekérdezés nélkül nem nagyon megy... Honnan tudja a kliens, hogy más is nézi azt a view-t? Ha sok adat van a view-ban és nem akarsz folyton mindent lekérdezni, akkor egy ID mezőre le lehet mondjuk kérdezni egy SELECT Max(ID) FROM View -val, hogy van-e újabb rekord, vagy ha frissülhetnek a mezők, akkor legyen a táblában egy TimeStamp mező (DateTime) ami frissítéskor frissül és akkor a SELECT Max(TimeStamp) FROM View-val megnézni, hogy van-e újabb adat. Esetleg csinálni egy Triggert, ami UPDATE/INSERT/DELETE-re frissít egy DateTime mezőt egy külön státusz táblában...
Szóval lekérdezés nélkül nekem semmi nem jut az eszembe, lekérdezésekkel, meg a fentiek.AE
-
ArchElf
addikt
válasz
Dobozossör #1352 üzenetére
Ez talán egy kicsit kisegít:
http:
//stackoverflow.com/questions/844835/sending-mail-throught-http-proxy
Amúgy röviden csak annyit, hogy a HTTP proxy-nak semmi köze nincs az SMTP-hez. Ha céges hálózatban vagy és nem megy ki az SMTP, akkor az nem a proxy/kliens hibája, hanem a tűzfalon van letiltva a kimenő SMTP. Amennyiben mégis szeretnél valamiért HTTP-n keresztül "kimenni" úgy pl. azt a megoldást tudom ajánlani, amint a mi a fent linkelt eszélgetés végén található - persze céges hálózaton ez nagy valószínűség szerint a helyi szabályokba ütközik..És még ezt találtam neked: http://www.lesnikowski.com/blog/index.php/tag/mail-dll/
AE
-
ArchElf
addikt
Csinálsz szerintem egy szimpla PKData definíciót, és az összes PX-tömbelemnek add azt értékül:
'Px Kiürítése
Dim EmptyPkData as PkData
For ix = 1 to UBound(Px)
Px(ix) = EmptyPkData
Next ixmod: Mivel a VB6 automatikusan inicializál, így az EmptyPkData biztos, hogy üres lesz, az értékadásnál pedig egyszerűen felülírja a régi értéket (és mivel value type, nem pedig class, így nem ugyanarra az objektumra fog hivatkozni az összes tömbelem - az egyetlen gondot az jelentheti, ha a type definíció osztályokat is tartalmaz).
AE
-
ArchElf
addikt
VBS-t nem gazán lehet úgy meghívni, mint fuattatható fájlt htmlből (legalábbis értelme sok nincs). A Wscript.Arguments-be amúgy a futtatott fájl argumentumai kerülnek át - pl.:
a popupmessage.vbs "user" "üzenet" esetén az első argumentum a "user", a második az "üzenet".
Egyrészt ez azért problémás, mert a commandline hossza korlátos (255 körül, így az átadható adatmennyiség is korlátos), másrész egy HTML kódnál van meghívható függvény opció, így felesleges trükközni és hackelni, hogy a href mezőbe az ember valahogy belepaszírozza a textarea tartalmát is (ami nem mellesleg lehet, hogy bele sem fér).AE
-
ArchElf
addikt
Ez működőképesnek tűnik.
Load-ban be kell állítani a fájlnevet (ha nem textboxból kell beolvasni), Megnyitni a fált írás/olvasásra, le kell kérdni a rekordok számát, be kell állítani az első rekordot (nem kell beszárni a fájl).
Bottonokban:
- navigálás: gondolom neked is egyszerű (index változót kell növelni csökkenteni a 0 és a darabszám-1 között - vagy 1 és darabszám között??? már nem emlékszem)
- editre: ugyanaz van, mint a GET (csak PUT-tal): beállítani a rekordszámot, a textboxokból legenerálni a típust, felülírni vele a rekordot az adott helyen.
- mentésre: bezárni a fájlt és újranyitni
- törlésre:
legegyszerűbb az utolsó elemet a fájl végéről bemásolni a törölt helyére és a rekordhosszal csökkenteni a fájl hosszát.
bonyolultabban minden rekordot a törölt rekod után eggyel előrébb írni, majd csökkenteni a fájl hosszát egy rekordhosszal.Nincs sajna VB6-om, csak magyarázni tudok...
AE
-
ArchElf
addikt
Van valami obfuscator hozzá, de szerintem csak annyit ér, mint a Java-s társai.
Esetleg le lehet védeni mondjuk DLL-eket: betitkosítani, kódból visszafejteni és memóriából betölteni, de én mondjuk még nem csináltam ilyet.
Egy jó kis agymenés a stackoverflow-n a témában: linkAE
-
ArchElf
addikt
válasz
martonx #1261 üzenetére
Ops, bocs - winforms-ról valamiért a VB6 ugrott be...
Nemrég találtam egy viszonylag jó kördiagramos kódot a neten (amit egy kicsit a saját szájízem szerint módosítottam).AE
-
-
ArchElf
addikt
válasz
ArchElf #1189 üzenetére
Vagy MS forrásból (minimum VS.NET 3.5):
http://code.msdn.microsoft.com/mschartAE
-
ArchElf
addikt
válasz
csimmasz #1177 üzenetére
Option Explicit
'strFolder -> kívánt könyvtárnevet beleírni
'fShell -> utorrent.exe teljes elérési útvonala (dupla quote kell, ha az elérési útvonal tartalmaz space-t)
Dim sFolder, oFSO
Dim oShell, fShell
sFolder = "S:\Share"
fShell = """c:\ProgramFiles\uTorrent\uTorrent.exe"""
Set oFSO = CreateObject("Scripting.FileSystemObject")
While not oFSO.FolderExists(strFolder)
WScript.Sleep 30000
Wend
Set oFSO = Nothing
WScript.Sleep 5000
Set oShell = WScript.CreateObject ("WScript.Shell")
oShell.run fShell
Set oShell = Nothing
A két változó értékét beállítod:
- share könyvtár helye (célszerű map-elve meghajtóra)
- torrent program elérési útvonalaA script fél percenként megnézi, hogy elérhető-e a share, amikor igen, elindítja a programot.
AE
-
ArchElf
addikt
válasz
ArchElf #1128 üzenetére
Amúgy lassan feltöri az IPhone-os srác a PS3-at...
http://geohotps3.blogspot.com/AE
-
ArchElf
addikt
Pendrive - csak írni kell egy dummy drivert, ami USB drive-nak hazudja magát
Általában a webes ellenőrzzéses - webservice-es? -, no meg a jól bevált kulcsgenerálós megoldások mennek mostanában szerintem.
Esetleg lehet használni hardveres megoldást is (smartcard, titkosított pendrive) ha tényleg erősen fizetős megoldást lesz, de itt már rendesen bele kell gányolni a kódba is, hogy nehezen törhető legyen.
AE
-
ArchElf
addikt
Pl., a beviteli mezők ne legyen összekötve a táblával, hanem egy megírt insert-tel tedd be az adatokat az adatbázisba.
Persze ez hackelés
Azt is csinálhatod, hogy beteszel a táblába egy kötelező mezőt érték ellenérzéssel (Yes/No típus, "validation rule" = True) , és úgy csak akkor tud adatot feltölteni, ha a checkbox be van kapcsolva...AE
-
ArchElf
addikt
válasz
Dobozossör #1109 üzenetére
Asszem láttam 1-2 éve a codeproject-en ribbon bar komponenst. Lehet, hogy nem vb, hanem c# alatt volt megírva, de ez a .NET motort nem nagyon izgatja.
AE
-
ArchElf
addikt
válasz
zabomate #1096 üzenetére
És ha shell() nem jó: Win32 API megvalósítás
AE
-
ArchElf
addikt
-
ArchElf
addikt
Az utasítások eléggé különböznek, de azt szoktam mondani, hogy ha az ember nem "szemellenzősen" tanul programozni, az egyik nyelvről egy másikra való váltás csak napok/hetek kérdése. A váltásnál a legnagyobb nehézség a megszokások lerázása (alap változótípusok megtanulása, alap műveleti típusok formázása, programfelépítés), a többi csak arról szól, hogy nem a-nak hívják a függvényt, hanem b-nek, és nem három argumentuma van, hanem négy
Amúgy ezekben aktívan programozok, azt azért nem merem mondani, hogy fejlesztek
C#
PHP
VBS
Ezekben meg nem aktívan, csak ha úgy hozza az igény:
VB.NET
ASP.NET
Java
VB6
C/C++AE
-
ArchElf
addikt
De
(vagy CurDir???)
Amúgy ha jól rémlik ezt azt adja meg, ami:
1)
Ha magát az exe-t indítottad el, az a könyvtár, ahol az exe van
2)
Ha shortcut-ot indítottál, az a könyvtár, ami a shortcut "start in" mezőjében szerepel. Ha a start in könyvtár nem érvényes, akkor asszem a %windir% környezeti változó lesz az értéke (ami leggyakrabban c:\windows, de ez is telepítésfüggő)Úgy rémlik, hogy a VisualBasic IDE-t úgy lehet "átvágni", hogy ne a c:\program files\... legyen a start in könyvtár a projektnél, hanem a projektkönyvtár, hogy nem az IDE-ből indítod el a projektedet, hanem közvetlenül a projekt fájl megnyitásával. Elég régen használtam már VB6-ot nem vagyok benne biztos.
AE
-
ArchElf
addikt
Épp azt írtam, hogy ez program és installer függő. Vagy célszerű tudnia programodnak, hogyan működik az installer (hova milyen adatokat ír), vagy pedig csak egyszerűen le kell kérdeznie a futó folyamat indítási könyvtárát.
Amúgy az alkalmazásodba ne statikus, hanem relatív útvonalat használj. Tudom, hogy ez problémás a fejlesztéskor, mert alapból VB könyvtárában keresi a fájlokat, ha egy projektet indítasz, nem a projekt könyvtárában, de ezt is meg lehet kerülni.AE
-
ArchElf
addikt
A Visual Studionak van saját installere (persze nem az Express változatnak), de lehet válogatni a piacon is bőséggel (de ha van egy 1 órád, vagy fél napod, te is összedobhatsz egy alap telepítőt a programodhoz)... Anno használtam VB6-hoz is a beépített installer plugint (bár azért az kicsit már a szenvedés határát súrolta).
AE
-
ArchElf
addikt
Kérdés, hogy hogyan telepítették föl... Mondjuk a legegyszerűbb megoldás a registry (telepítéskor beíródik oda minden adat, ami neked kell), de lehet egy text file is a programod mellett. Mindenesetre ez nagyban függ attól, hogy te írod a telepítőt is, vagy valami szabvány telepítőbe teszed bele a programod.
Amúgy az alkalmazás le tudja kérdezni a környezeti változóit. Pl mi a futtatott fájl elérési útvonala, mi van megadva "start in" könyvtárnak a linkjében, ha azzal indították, ésatöbbi...AE
Új hozzászólás Aktív témák
Hirdetés
- WoW avagy World of Warcraft -=MMORPG=-
- Spórolós topik
- Mielőbb díjat rakatnának a görögök az olcsó csomagokra az EU-ban
- Kuponkunyeráló
- Horgász topik
- iPhone topik
- Óra topik
- Luck Dragon: Asszociációs játék. :)
- Intel Core i3 / i5 / i7 / i9 10xxx "Comet Lake" és i3 / i5 / i7 / i9 11xxx "Rocket Lake" (LGA1200)
- Path of Exile (ARPG)
- További aktív témák...
- Apple iPhone 15 128GB, Kártyafüggetlen, 1 Év Garanciával
- Újszerű Asus ExpertBook B1 B1500 - 15.6" FullHD IPS - i5-1235U - 16GB - 512GB SSD - Win11 - Garancia
- Redmi Pad Pro, 6GB/128GB, még garanciális
- Honor 200 Pro 512GB, Kártyafüggetlen, 1 Év Garanciával
- Lenovo Thinkpad L14 Gen 4 -14"FHD IPS - i5-1335U - 8GB - 256GB - Win11 - 2 év garancia - MAGYAR
- HATALMAS AKCIÓK / MICROSOFT WINDOWS 10,11 / OFFICE 16,19,21,24 / VÍRUS,VPN VÉDELEM / SZÁMLA / 0-24
- LG 32SQ700S-W - 32" VA Smart - 3840x2160 4K UHD - 62Hz 5ms - WebOS - Wifi + BT - USB-C - Hangszórók
- Csere-Beszámítás! Asus Rog Strix G731GU Gamer Noti! I7 9750H / GTX 1660TI / 16GB D4 / 512 SSD
- Apple iPhone SE 16GB, Kártyafüggetlen, 1 Év Garanciával
- DELL PowerEdge R730xd 12LFF rack szerver - 2xE5-2680v3,64GB RAM,4x1GbE,H330 RAID v ZFS
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest