JanMichiel | woensdag 27 juli 2005 @ 14:17 | |||||||
Voor alle Visual Basic 6 vragen. Is Dir de beste methode om te checken of een bestand aanwezig is in de folder en zo niet het bestand aan te maken? Ik heb het volgende gemaakt (voor het bestand 'data.mdb'):
| ||||||||
Xsysstar | woensdag 27 juli 2005 @ 14:38 | |||||||
Nee, u moet het FileSystemObject gebruiken dat geleverd wordt bij het Microsoft Scripting Runtime (Reference zetten). Public FSO as FileSystemObject Module: dim bExists as boolean bExists = fso.FileExists("data.mdb") enz. Aanmaken van een database bestand kan, geloof ik, met Microsoft DAO (= niet ADO, heeft wel raakvlak). Let erop dat als u zowel ADO als DAO gebruikt, u al uw definities volledig defineert, vanwege de dubbele klassenamen. dim db as ADO.Database en niet: dim db as Database [ Bericht 36% gewijzigd door Xsysstar op 27-07-2005 14:40:36 (Aanvulling) ] | ||||||||
daReaper | woensdag 27 juli 2005 @ 14:40 | |||||||
ha, ik heb ook een mooie vraag ik heb (VBA, overigens) een input boxje waar je een dir in kan vullen. Met
| ||||||||
Xsysstar | woensdag 27 juli 2005 @ 14:42 | |||||||
quote:Met ChDrive ![]() | ||||||||
JanMichiel | woensdag 27 juli 2005 @ 15:08 | |||||||
quote:Ok, bedankt voor de uitleg. Ik zal het straks proberen als ik op de andere computer zit. | ||||||||
daReaper | woensdag 27 juli 2005 @ 15:29 | |||||||
quote:Ja maar doe eens mooi functietje ofzo ![]() En hoe dit dat met netwerk directory's? ( //share/bla ) | ||||||||
Xsysstar | woensdag 27 juli 2005 @ 15:46 | |||||||
quote:Nou, het mooie functietje ![]()
Netwerk kan niet; helaas ![]() | ||||||||
JanMichiel | donderdag 28 juli 2005 @ 11:40 | |||||||
quote:Het wil nog niet helemaal lukken, ik heb het volgende gedaan. Een reference geplaatst naar Microsoft Scripting Runtime. Een module gemaakt met de volgende code:
En dan de variabele bExists in een sub testen, bijvoorbeeld:
Wanneer ik de code wil uitvoeren (F5) geeft Visual Basic op het "data.mdb" gedeelte de foutmelding: Invalid Outside Procedure. Wat doe ik nu verkeerd? | ||||||||
Xsysstar | donderdag 28 juli 2005 @ 11:43 | |||||||
Dat is mijn fout; ik haal module en sub door elkaar. Spijt me. De FileSystemObject-definitie moet in de kop van de module (dat was goed). In een sub kunt u met dat FSO-object vele functies aanroepen, waaronder FileExists. Oftewel: de bExists-definitie en het vullen ervan moet ook in Form_load. | ||||||||
JanMichiel | donderdag 28 juli 2005 @ 11:49 | |||||||
quote:1. Reference 2. Module:
3. Sub:
Correct? Ik dacht dat ik dit al geprobeerd had (zonder veel succes), maar zal het straks nog eens proberen. Is het overigens noodzakelijk om de reference (object?) in een module te declareren? Of kan dat ook gewoon in een form? | ||||||||
Xsysstar | donderdag 28 juli 2005 @ 12:02 | |||||||
quote:Dat kan in principe overal (het FileSystemObject kan ook in een gewone sub gedeclareerd worden), maar afhankelijk van het soort referentie kan het verstandig zijn om één enkele instantie te maken van die referentie. Een FileSystemObject is onveranderlijk en hetzelfde object kan dus door het hele programma door gebruikt worden. Indien u veel met dit object wil doen, kan het handig zijn het object eenmalig in een module (Public) te declareren. Mocht u het maar nodig hebben in één sub of functie, dan kan het gewoon in de desbetreffende sub of functie gedeclareerd worden (Dim). | ||||||||
LeeHarveyOswald | donderdag 28 juli 2005 @ 14:22 | |||||||
Ik ben een online game aan het maken, werkt opzich al redelijk ![]() Bij het versturen van de info van de wereld (welke gebouwtjes er gebouwd zijn) maak ik 1 lange regel die op de server in een database wordt gezet. Deze regel is alsvolgt opgebouwd: base#(insert X coordinaat hier)#(insert Y coordinaat hier)#(welk nr. gebouw hier)#(insert X coordinaat hier)#(insert Y coordinaat hier)#(welk nr. gebouw hier)# etc etc. Nu staan die gegevens in het programma in inbase(500,500) Ik wil dat de gegevens op de server up2date blijven. Dus ik verstuur bij het bouwen van een gebouw die info over. Probleem daarbij is om de X en de Y gegevens, en het bijhorende gebouw in 1 regel te krijgen. Ik doe dat als volgt:
Maar daar wordt mn spelletje ERG traag van ![]() (lees: Hij bevriest voor een minuut of 5). En dat komt uiteraard de gameplay niet ten goede ![]() Dus beste medemensjes, hoe dit op te lossen? | ||||||||
Xsysstar | donderdag 28 juli 2005 @ 14:33 | |||||||
U kunt het beste klassen gebruiken. Indien u niet gewerkt hebt met klassen en verzamelingen (collecties), zegt u het dan even? Dan leg ik het wat verder uit. [Class: clsBuilding]
[Module]
In deze module:
| ||||||||
LeeHarveyOswald | donderdag 28 juli 2005 @ 14:40 | |||||||
De gebouwen zijn ook genummerd ![]() Dit gebeurt in een aparte module.. Alleen je For-next lus snap ik niet echt, en Collection? (het gaat om een (Veels te groot, ik ga hem ook verkleinen) veld van 500x500 gebouwtjes, dus 250 000 gebouwtjes) | ||||||||
Xsysstar | donderdag 28 juli 2005 @ 14:57 | |||||||
Het nummeren van sóórten gebouwen doe ik met Enum (dat is gewoon een lijst met cijfers die een naampje krijgen). Mocht dat niet genoeg zijn (dat zal snel het geval zijn), dan kunt u in plaats van een Enum, wéér een andere klasse maken (bijv. clsBuildingType) en nóg collection (bijv. Public Buildingtypes as Collection) in een module. In elk zo'n klasse (clsBuildingType) kunt u eigenschappen van het desbetreffende gebouw opgeven (BuildingName, DeltaStonePerTurn, BuildCostStone, enz). +++ Ja, in de for-lus staat foutje; 'k zag het net moet zijn: s = s & .... ("cstr" wordt gebruikt om integers e.d. om te zetten in een string.) Met deze functie worden nu gewoon alle gebouwen uit de collectie gepakt en hun gegevens (x,y, type) achter elkaar geplakt. Collections: Een collection kan (i.t.t. een array) Objecten bevatten, elk met een unieke Key. Alle Toolbars (toolbar.buttons), Listviews (listview.listitem), treeviews (treeview.nodes) hebben een (of meerdere) collectie(s) waarin objecten (werkbalkknop, listviewpictogram, treeviewvertakking) geplaatst worden. Zelfgemaakte objecten (=klassen) kunt u hier ook in plaatsen. Dat is wat ik hier ook heb gedaan: Public colCollection as collection 'Collectie defineren=geheugenplaats vrijmaken Sub init set colCollection = new collection 'Setten=geheugenplaats vullen met een nieuwe collectie (want u zou ook een kopie van een bestaande collectie kunnen maken (set colCollection = colOld) 'Aangezien een collectie ook een object is, moet het geset worden; alle objecten die u in de programmacode maakt en wilt gebruiken, moeten geset worden. dim c as clsNieuweKlasse 'Geheugenplaats vrijmaken set c = new clsNieuweKlasse 'Nieuwe maken debug.print "In de klasse zitten " & c.count & " objecten." 'Geen=0 objecten colCollection.add tb, "Nieuwe klasse" 'Hiermee wordt "c" aan de collectie toegevoegd met de sleutel "Nieuwe klasse". debug.print "In de klasse zit " & c.count & "object" 'Eén object. If colCollection(1) is colCollection("Nieuwe klasse") then debug.print "Men kan een object in een collectie op twee manieren aanroepen: als getal (index) of als naam (key)" if colCollection(1) is c then debug.print "Object 'c' is inderdaad gelijk aan colCollection(1) end sub Let u wel op dat bij een vergelijking (if-statement) objecten altijd met "is" (en niet =) worden vergeleken. Het setten van objecten gaat wel gewoon met het =-teken, maar i.t.t. strings en integers moet er dan het commando "set" voor, zoals u hebt kunnen zien. Hopelijk is het duidelijk ![]() | ||||||||
LeeHarveyOswald | donderdag 28 juli 2005 @ 15:49 | |||||||
Jup thnx ![]() ![]()
quote:Echter, dit is gewoon een iets aangepaste query die al werkte.. | ||||||||
Xsysstar | donderdag 28 juli 2005 @ 15:54 | |||||||
Hmm, dat lijkt SQL. Ik weet niet hoe de functie AddRecord werkt, maar ik denk dat de oplossing wel weet: achteraan het commando (vóór het laatste aanhalingsteken: AddRecord "Commando(Hier)" ) moet u de puntkomma plaatsen. Als dit inderdaad niet werkt, misschien moet u een spatie plaatsen tussen het aanhalingsteken en WHERE in het deel [& "WHERE username =]. | ||||||||
JanMichiel | donderdag 28 juli 2005 @ 16:22 | |||||||
quote:Volgens mij moet er ook nog iets met het Set command gebeuren in mijn code. Ik ben nog een beetje aan het inlezen over objects, maar elke hulp is meegenomen. ![]() | ||||||||
Xsysstar | donderdag 28 juli 2005 @ 16:24 | |||||||
Ik heb niet zoëven iets gezien in uw code waar een Set commando gebruikt moet worden maar mocht u ergens met zitten (te twijfelen), dan zegt u het maar ![]() | ||||||||
LeeHarveyOswald | donderdag 28 juli 2005 @ 16:27 | |||||||
quote:De functie addrecord doet:
Dat met die puntkomma neerzetten heb ik geprobeerd, werkte helaas niet ![]() | ||||||||
JanMichiel | donderdag 28 juli 2005 @ 16:27 | |||||||
Ik krijg bij het uitvoeren error code #91. Je kan het wel nalezen in de VB help index waarschijnlijk. Het helpdocument spreekt voor het gebruik van een object over het declareren van het object (gedaan) en het Set command. Maar ik heb momenteel te weinig kennis van objects om te weten het het Set command te gebruiken. | ||||||||
LeeHarveyOswald | donderdag 28 juli 2005 @ 16:30 | |||||||
Spatie was het ook niet.. zou het kunnen dat de query die ik doorgeef, te lang is? | ||||||||
Xsysstar | donderdag 28 juli 2005 @ 16:30 | |||||||
quote:Dat Set = nothing is overbodig; VB doet dat zelf. Het probleem zal hem wel in adocon liggen. Goede RecordType ofzo (Unknown, Table, enz, Command) gekozen? Probeer anders eens een debug.print van de Query; misschien ziet u het dan ineens. | ||||||||
Xsysstar | donderdag 28 juli 2005 @ 16:31 | |||||||
quote:Zou kunnen; max 255 tekens ofzo? | ||||||||
Xsysstar | donderdag 28 juli 2005 @ 16:32 | |||||||
quote:In LeeHarveyOswalds code kunt u zien hoe het met Dim en Set werkt. Kijkt u anders eens op Google of http://www.vbgroup.nl/Default.aspx?tabid=41. Er zijn vast wel minicursi te vinden. | ||||||||
LeeHarveyOswald | donderdag 28 juli 2005 @ 16:42 | |||||||
quote:Wat op dat moment in mn variabele staat klopt volgens mij wel, nl: INSERT INTO worldinfo (worldstring) VALUES ('base#0#0#0#0#<knip>0#0#') WHERE username = 'Jeroen' | ||||||||
Xsysstar | donderdag 28 juli 2005 @ 16:58 | |||||||
quote:De heer des huizes kwam even langs en zei dat het aan de hekjes zou kunnen liggen. Volgens mij moet je voor het hekje, de bijbehorende HTML-code gebruiken (bijv.). Natuurlijk kunt u ook gewoon een ander teken gebruiken (of een gewone letter). | ||||||||
LeeHarveyOswald | donderdag 28 juli 2005 @ 17:01 | |||||||
hmmm maar dan zou er dus een aparte VB code moeten zijn voor een hekje? | ||||||||
Xsysstar | donderdag 28 juli 2005 @ 17:06 | |||||||
Nee, dat maakt niet uit. Het gaat erom dat u waarschijnlijk een teken gebruikt dat niet wordt toegestaan. Probeert u eens het En-teken & i.p.v. het hekje. Tip! Defineer in uw hoofdmodule (elk programma zou er één moeten hebben; meestal modMain genoemd) een constante voor dat scheidingsteken:
Als u overal waar u nu het hekje gebruikt verwijst naar sSep, is er minder kans op typfouten en kunt u sneller veranderingen doorvoeren. P.S. Ik ben benieuwd naar waarvoor dit alles dient. Wat voor soort spel moet het worden? En wat is al klaar? Ik heb namelijk zelf wel eens wat geprobeerd, maar als ik dan naga hoeveel er gebeuren moet, ben ik vrij snel genezen ![]() | ||||||||
LeeHarveyOswald | donderdag 28 juli 2005 @ 17:09 | |||||||
quote: ![]() | ||||||||
LeeHarveyOswald | donderdag 28 juli 2005 @ 17:10 | |||||||
Ik ga even alle #jes zowel in de server als in de client vervangen met en tekens, daarna zet ik de exec. wel even online ![]() | ||||||||
LeeHarveyOswald | donderdag 28 juli 2005 @ 17:12 | |||||||
zelfde foutmelding met & ipv. # ![]() | ||||||||
Xsysstar | donderdag 28 juli 2005 @ 17:16 | |||||||
Jammer; ik zal zo eens kijken naar nukezone. Eerst even wat nuttigen ![]() | ||||||||
LeeHarveyOswald | donderdag 28 juli 2005 @ 17:19 | |||||||
Smakelijk ![]() | ||||||||
Xsysstar | donderdag 28 juli 2005 @ 18:31 | |||||||
Dank en daar ben ik weer. Ik heb even gekeken op http://www.nukezone.info/, aannemende dat het over het spel gaat waarnaar u verwees. Jammer dat er geen screenshots zijn. Kent u trouwens DarkGalaxy? Ook al is er nu een beta, (is het offline) voor versie 5 en valt er vrij weinig te doen (www.darkgalaxy.com), als u van ruimte strategie (vooral strategie) spellen houdt, met allianties en veroveringscampagnes voeren dan kan dat best een leuk spel zijn. | ||||||||
LeeHarveyOswald | donderdag 28 juli 2005 @ 18:52 | |||||||
Ik bedoelde http://www.nukezone.nu/ ![]() Dat is een text based spel. Mijn spel is niet tekstbased: er is wel een Grafisch gebeuren, maar voor de rest lijkt het er wel op.. | ||||||||
Xsysstar | donderdag 28 juli 2005 @ 18:55 | |||||||
Ja, ik klikte op Manual en toen kwam ik op de .info-site. Ik ben bang dat ik me niet ga aanmelden (ik ben even uit het ontdekken van nieuwe spellen), maar ik ben wel benieuwd naar de eerste build van uw grafische versie. Succes alvast ![]() | ||||||||
LeeHarveyOswald | donderdag 28 juli 2005 @ 19:21 | |||||||
http://pestforum.nl/webwar.exe Het uitvoeren van die query, waar hij dus op vast loopt, heb ik even uitgeschakeld. Server die standaard genoemd wordt ist, zelf even een user maken en aanmelden ![]() | ||||||||
Xsysstar | donderdag 28 juli 2005 @ 19:24 | |||||||
Hmm, ik ben bang dat het pestforum gepest wordt door de "De pagina kan niet worden weergegeven"-foutmelding.... | ||||||||
LeeHarveyOswald | donderdag 28 juli 2005 @ 20:00 | |||||||
jup.. server down ![]() | ||||||||
Xsysstar | donderdag 28 juli 2005 @ 20:02 | |||||||
Laat je't me weten wanneer die weer open gaat? Dank alvast ![]() | ||||||||
LeeHarveyOswald | donderdag 28 juli 2005 @ 20:09 | |||||||
quote:http://www.pestforum.nl/webwar.exe Server is 62.251.120.197 Edit: Server is weer online. [ Bericht 12% gewijzigd door LeeHarveyOswald op 28-07-2005 20:18:12 ] | ||||||||
Xsysstar | donderdag 28 juli 2005 @ 20:12 | |||||||
Uhm... Lycos doet wat moeilijk ![]() Stuur het anders naar -----@-------; per MSN (=idem) mag ook. [ Bericht 11% gewijzigd door Xsysstar op 28-07-2005 20:19:22 ] | ||||||||
LeeHarveyOswald | donderdag 28 juli 2005 @ 20:19 | |||||||
Ik zie dat het inloggen gelukt is ![]() ![]() | ||||||||
Xsysstar | donderdag 28 juli 2005 @ 20:22 | |||||||
Hehe; doe rustig aan. Ontwikkeling haasten is zelden goed ![]() | ||||||||
JanMichiel | vrijdag 29 juli 2005 @ 15:42 | |||||||
quote:Ik weet waarom het niet werkte. Je was New vergeten. Er zijn twee opties. 1:
2:
| ||||||||
Xsysstar | vrijdag 29 juli 2005 @ 16:01 | |||||||
Ach ja, natuurlijk. Onbewust weggelaten, waarschijnlijk vanzelfsprekendheid ![]() Laatste is sneller, veel sneller. Indien u een Publieke definitie wilt maken (Public FSO as FileSystemObject; in de header, zoals ik deed), kunt u het beste in de Form_Initialize (of Class_Initialize, enz) het Set-commando gebruiken. In modulen bestaat er niet zo'n voorgemaakte sub "Initialize", dus die moet u zelf even maken. | ||||||||
Chandler | maandag 1 augustus 2005 @ 12:28 | |||||||
Weet iemand hoe je kan werken met een collection? ik heb een functie gevonden waarmee ik een tree kan uitlezen maar nu wil ik weten hoe ik de gegereneerde collection kan benutten.. ![]() ![]() Tnx ![]() | ||||||||
Xsysstar | maandag 1 augustus 2005 @ 12:30 | |||||||
Ik zou graag willen helpen, maar ik weet niet echt wat u bedoelt. Als u het treeview control bedoelt, de "Nodes" eigenschap is al een collection, dus hoeft niet apart uitgelezen te worden in een nieuwe collection. | ||||||||
Chandler | maandag 1 augustus 2005 @ 15:12 | |||||||
Ik heb de volgende functie (sub)
nu kan ik deze functie uitlezen door
maar wat kan ik dan doen met test? ![]() | ||||||||
EggsTC | maandag 1 augustus 2005 @ 15:20 | |||||||
Als ik het zo snel doorlees kan je directories listen.. | ||||||||
Xsysstar | maandag 1 augustus 2005 @ 15:27 | |||||||
quote:Hehe, niets ![]() Ik weet niet zeker of Collections, 'strings' kunnen bevatten. Waarschijnlijk blijkbaar niet, anders zou deze programmeur geen variant hebben gebruikt. Als ik u zou zijn, zou ik óf het FileSystemObject gebruiken, zoals in een eerdere reactie uitgelegd, óf een Klasse maken (bv. clsFile met i.i.g. de Publieke eigenschap Path). In plaats van "File as variant" te defineren, defineert u het nu "as clsFile". Vergeet niet: 1) Altijd File.Path te lezen en te vullen. Dus zoals in deze functie staat "File = bla..." moet worden "File.Path = bla...". 2) Het object in deze functie hergebruiken moet even wat anders: niet zomaar File = dir$, maar:
Als terugwaarde van de Functie hebt u dan een Collectie, gevuld (of niet natuurlijk) met clsFile objecten, wiens bestandspad u kunt uitlezen met de Path-eigenschap van elk zo'n object. Maar dit is maar één van de vele oplossingen ![]() | ||||||||
EggsTC | maandag 1 augustus 2005 @ 15:36 | |||||||
Ook gelijk bedankt voor de layout fuck | ||||||||
Xsysstar | maandag 1 augustus 2005 @ 15:38 | |||||||
quote:Ja, dat is Foks probleem, hoor ![]() | ||||||||
Chandler | maandag 1 augustus 2005 @ 17:20 | |||||||
Het is dus om het even in het kort uit te leggen de bedoeling om een tree uit te lezen, ik dacht dat een functie daarvoor best handig zou zijn. Ik ga zelf eens een functie proberen te maken... | ||||||||
Xsysstar | maandag 1 augustus 2005 @ 17:27 | |||||||
Een functie is prima handig ![]() U bedoelt een repeterende functie die mappen in een treeview plaatst en oneindig diep kan gaan? Dan zult u een functie moeten schrijven die bestaat uit: 1) Een parameter byval "Path as string" In de functie 2) De inhoud van de map "Path" doornemen met zo'n zelfde While-lus als in de vorige broncode en dan bij elke iteratie van een map dezelfde functie nóg eens aanroepen, maar dan met als Path, de map van de betreffende iteratie. Als dit niet werkt, zou het wel moeten lukken door éérst een aparte collectie met die mappen te maken (dus in de lus, niet weer de functie aanroepen, maar toevoegen aan een collection) en nadat de lus klaar is, voor elk onderdeel uit de collectie nog eens de functie aanroepen. | ||||||||
Chandler | maandag 1 augustus 2005 @ 17:56 | |||||||
Ik heb nu het volgende geprobeerd; maar krijg steeds een error ![]()
waar ga ik de mist in? ![]() ![]() ![]() | ||||||||
Xsysstar | maandag 1 augustus 2005 @ 18:43 | |||||||
- U moet kiezen wat je terug wil hebben van de functie Readtree; dit doet men door achter de haakjes van de functie 'as (type)' te plaatsen (zonder apostroffen). - U moet Test "dimmen" (=defineren) as hetzelfde type als in de zin hierboven. - U moet Filenames eerst dimmen als collectie en dan "Set Filesnames = new collection"; daarna pas de rest van de function ReadTree - U moet ergens in de functie ReadTree bepalen wat u terug wilt hebben ("ReadTree = bla" óf "Set ReadTree = bla" als het om een object gaat). - Wat wilt u met fBase doen? 't Is moeilijk zo even uit te leggen (ik moet zo ook nog eens weg), maar als ik u was, zou ik eens kijken op www.planet-source-code.com of een dergelijke stek; daar zijn veel programma's met broncode and tips te vinden. VB is lastig in het begin; zeker de opgave die u uzelf oplegt, vergt wat meer ervaring en denkwerk dan waar de gemiddelde beginner mee begint ![]() Ik zou zeggen: probeer eens een tekstverwerker. In VB 6 zit een application wizard. Kies daaruit "MDI" en u krijgt een basis tekstverweker voorgeschoteld. Probeer die eens uit te breiden (behalve vet, cursief en onderstreept kan bijv. ook nog doorhaald=strikethrough, kleuren, objecten invoegen, sub-/superscript). Daar had ik veel van geleerd ![]() ![]() | ||||||||
EggsTC | dinsdag 2 augustus 2005 @ 09:15 | |||||||
Ik ben meer van de winsock kant ![]() | ||||||||
JanMichiel | dinsdag 2 augustus 2005 @ 13:00 | |||||||
Ik heb er nog eentje. Ik gebruik een textbox als activity log. Voor het toevoegen van een nieuwe entry plak ik de content achter de bestaande content. txtLog.text = txtLog.text & "Een nieuwe entry voor het log" & vbCrLf Wanneer de tekstbox volzit zijn nieuwe items echter niet meer zichtbaar wanneer ze worden toegevoegd. Hoe zorg ik dat de laatste items zichtbaar blijven en de bovenste items wegvallen? mmh, ik realiseer met net dat ik het ook andersom kan programmeren, nieuwe items bovenaan toevoegen. Maar het anderwoord op deze vraag zou wel handig zijn ![]() | ||||||||
Xsysstar | dinsdag 2 augustus 2005 @ 13:50 | |||||||
txtLog.selstart = len(txtlog.text) ![]() O, vbNewline blijkt sneller te zijn dan vbCrLf; scheelt honderdsten van milliseconden, maar ach: ik zeg het toch maar even ![]() P.S. Ik zou een RTF box willen aanraden, want volgens mij heeft die geen grens van hoe lang de tekst mag zijn terwijl alle textboxen iets meer dan 35000 tekens mogen bevatten. | ||||||||
EggsTC | dinsdag 2 augustus 2005 @ 13:56 | |||||||
chr$(10) & chr$(13) is nog sneller toch? | ||||||||
JanMichiel | dinsdag 2 augustus 2005 @ 14:16 | |||||||
Waar staat RTF voor? | ||||||||
Xsysstar | dinsdag 2 augustus 2005 @ 14:22 | |||||||
quote:Ik geloof het niet want dan moet er op twee plekken in het geheugen gekeken worden (voor teken 10 en voor 13) terwijl vbNewline al gedefineerd is als 10 en 13 tezamen. Ik heb ook maar ergens gelezen dat vbNewline het snelst is, samen met andere tips zoals altijd de $-varianten van commando's gebruiken wanneer mogelijk (mid$ i.p.v. mid, enz). === RTF staat voor Rich Text Format; een tekstopmaakformaat. MS heeft een control gemaakt dat dit formaat ondersteunt. Met RTF kan men tekst een kleurtje geven, vetdrukken, enz; net als Word en andere beter-dan-Kladblok-tekstverwerkers. | ||||||||
LeeHarveyOswald | dinsdag 2 augustus 2005 @ 14:30 | |||||||
quote:+ dat het opslaan vanuit rtf kinderlijk eenvoudig is: rtftxt.savefile "C:\mijnbestand.doc" | ||||||||
whosvegas | dinsdag 2 augustus 2005 @ 23:00 | |||||||
quote:In sommige situaties zijn variants wel zinvol. Je kan er nl flexibele code mee schrijven, voorbeeldje:
Dus je kan een functie schrijven om verschillende typen variabelen af te handelen. quote:Strings kun je wel opslaan in een collection, geloof ik. Ik maak meestal gebruik van array's ipv collections | ||||||||
EggsTC | woensdag 3 augustus 2005 @ 10:02 | |||||||
Ik probeer een telnet applicatie na te bootsen met VB6. Nu heb ik dus een simpel dingetje gemaakt met winsock en een output window. Winsock connect op de speedtouch 510 router naar port 23.. krijg wat onzin terug, en daarna mooi een wachtwoordje in mn outputwindow. Commando's zenden naar de router werkt ook ok, gewoon met senddata text1.text. Dit is getest op een speedtouch 510 en een Siemens5830 router. Op beide routers krijg ik wat onzin (blokjes, vage tekens) terug maar ook normale tekst zoals "Username : ". Dit werkt dus voor de rest OK. Probleem is wanneer ik een VoDSL router benader(de RAD's LA-110) dan krijg ik alleen maar onzin terug, zonder normale tekst. Eigelijk alleen blokjes en sterretjes en ascii figuurtjes. Kan het zijn dat het een encryptie is die op die router zit? Want als ik 'gewoon' telnet ernaartoe dan krijg ik wel een PASSWORD prompt... iemand enig idee? | ||||||||
EggsTC | woensdag 3 augustus 2005 @ 13:53 | |||||||
niemand? ![]() Edit : Alle termtypes werken wel op telnet, dus daar zou t ook neit aan liggen,.. zoals VT100, VT52 etc. [ Bericht 43% gewijzigd door EggsTC op 03-08-2005 14:08:20 ] | ||||||||
whosvegas | woensdag 3 augustus 2005 @ 20:00 | |||||||
quote:Ik denk dat je je vraag beter kan stellen op: gathering.tweakers.net Want je stelt wel een hele specifieke vraag, imand moet net toevallig met hetzelfde bezig zijn. | ||||||||
EggsTC | woensdag 3 augustus 2005 @ 22:16 | |||||||
Ben er al achter, als je een char 1 terug krijgt met een winsock.. sla m over bij het invoegen van je textbox.. keyascii 1 zorgde ervoor dat ik de helft van mn werkelijke indata maar terug kreeg in mn textbox. dont ask. Geen idee waarom.. maar heb het step by step zitten bekijken en die indata zitten parsen totdat ik erachter kwam ![]() | ||||||||
Xsysstar | donderdag 4 augustus 2005 @ 11:29 | |||||||
quote:ASCII tekens 1 - 20 (geloof ik) zijn besturingstekens en kunnen dus worden verwerkt als iets anders dan gewoon een letter. Bijvoorbeeld nummer 10 en 13 (Enter). P.S. Ik was er gisteren niet, spijt me dat ik toen niet kon antwoorden ![]() | ||||||||
JanMichiel | donderdag 4 augustus 2005 @ 13:01 | |||||||
Nog iets waar ik niet uitkom, deze is een beetje moeilijker ![]() De input is data in een RichTextBox. De data heeft het volgende formaat: Mon Nov 8 05:01:18 2004, 30747408, 30742991, ABC, DEF, 10000, 1.29435, 0.0000 , 0.00 Mon Nov 8 05:01:41 2004, 30747434, , GHI, JKL, 10000, 1.29520, 1000.1393 , 0.00 Mon Nov 8 05:01:50 2004, 30747450, 30742991, MNO, PQR, 10000, 1.29520, 1000.1393 , 501.35 Mon Nov 8 05:02:24 2004, 30747741, , STU, VWX, 500, 1.29520, 0.0000 , 501.35 etc, etc. Items zijn gescheiden door een comma. Waarschijnlijk moet de input lijn voor lijn worden uitgelezen en items achter een comma in een nieuw veld worden geplaatst. De tabel met juiste velden is reeds gecreeerd, maar hoe krijg ik de verschillende items in de aparte cellen? Private Sub UpdateData() Dim dbAccountData As Database Dim rsAccountUpdate As Recordset Set dbAccountData = OpenDatabase("AccountData.mdb") Set rsAccountUpdate = dbAccountData.OpenRecordset("AccountX") ... ... End Sub | ||||||||
Xsysstar | donderdag 4 augustus 2005 @ 13:09 | |||||||
Volgens mij kon dat dmv: rsAccountUpdate!Veldnaam = Veldwaarde (Dus i.p.v. een punt, een uitroepteken). Verder zou ik willen aanraden het databaseobject algemeen te defineren (modulair; buiten deze specifieke sub), want dat maakt het programma sneller omdat de database maar eenmalig geladen hoeft te worden. P.S. Ik weet niet superveel van databases ![]() | ||||||||
JanMichiel | donderdag 4 augustus 2005 @ 13:24 | |||||||
Ik heb de database in een module gedefineerd, dit was enkel voor de duidelijkheid van het voorbeeld ![]() En hoe kan ik de input lijn voor lijn behandelen? Is er een bepaalde manier om via een Loop elke keer met de volgende regel van de input te werken? | ||||||||
Xsysstar | donderdag 4 augustus 2005 @ 14:04 | |||||||
-Dubbel0 | ||||||||
Xsysstar | donderdag 4 augustus 2005 @ 14:05 | |||||||
Lijn voor lijn inlezen: dim lFile as long: lfile = freefile dim sInput as string, sArr as string Open Bestand for input as lfile while not eof(lfile) 'Zolang niet einde van bestand line input lfile, sinput sarr = split(sinput,",") wend close lfile [ Bericht 0% gewijzigd door Xsysstar op 04-08-2005 14:09:59 (Klein Foutje :)) ] | ||||||||
JanMichiel | donderdag 4 augustus 2005 @ 14:07 | |||||||
ok, ik zal het proberen ![]() | ||||||||
whosvegas | donderdag 4 augustus 2005 @ 17:14 | |||||||
quote:Je kunt de Split() functie gebruiken om de verschillende velden in een array op te slaan. Daarna kun je de velden gemakkelik opslaan in de database. | ||||||||
JanMichiel | vrijdag 5 augustus 2005 @ 14:28 | |||||||
Bedankt, het werkt perfect. Nu alleen nog wat checks toevoegen tegen corrupte data. Wat voor Type zou jij eigenlijk toewijzen aan de database velden (help geeft aan dat een Type toewijzen optional is, maar wanneer het programma draait geeft windows een foutmelding wanneer geen Type is toegewezen)? Aangezien je sArr als sting defineerde neem ik aan dat je alles dbText (of een ander tekst type) zou maken. Is het echter niet beter om een nummer bijvoorbeeld dbLong als Type toe te wijzen, of geeft een dbText nummer geen probleem met latere verwerking? Kan een variabele ook naar #1 worden geopend - met een andere functie misschien? Ik kreeg het enkel voor elkaar met een file on disk. | ||||||||
Xsysstar | vrijdag 5 augustus 2005 @ 19:27 | |||||||
Types databasevelden? Nou, in de database moet men per veld gewoon opgeven wat voor info daarin komt: string (tekenreeks), integer (getal), long (lang getal), enz. Anders zou ik niet weten wat je bedoelt. sArr is een string array, omdat deze alle tekens kan bevatten (want een getal kan natuurlijk geen letters bevatten). De inhoud van deze array moet verwerkt worden: strNaam = sArr(0) intHuisnummer = cint(val(sArr(1))) 'CInt kan in dit geval overbodig zijn, maar dat weet ik even niet zeker Dus afhankelijk van wát dat ene Array Item voor gegevens bevat moet deze mogelijk omgezet worden van String (namelijk de Array) naar bijv. een Integer (namelijk de variabele waar de info moet komen). Dit kan met de CCommando's (CInt, CLng, CDbl, CDate). De CCommando's geven een fout als "de brongegevens" corrupt zijn (= meestal: bevatten letters); daarom moet men altijd (= wanneer mogelijk) het CCommando loslaten op Val(Brongegevens) i.p.v. gewoon "Brongegevens". Het Val-commando geeft namelijk indien mogelijk een Double terug ("143 e" > 143; als het goed is) en anders 0 (i.p.v. een foutmelding). Je kunt dus het beste de databaseveldtypes opgeven zoals ze moeten zijn: integer voor huisnummers, string voor straat, enz. Bij het inlezen moet dan alleen het een en ander worden omgezet. == Stom van me: 'k las het niet goed. Dat "Open" commando is voor bestanden. Als je een gewone String lijn-voor-lijn wilt verwerken, gescheiden door vbNewline (=enters), dan kan dat als volgt:
| ||||||||
EggsTC | zaterdag 6 augustus 2005 @ 00:00 | |||||||
xsysstar, heb nog een leuke vraag aan je, kan je een MSN adden? tis nl niet 1 vraag. Tis een vrij complexe situatie ![]() | ||||||||
Chandler | maandag 8 augustus 2005 @ 10:31 | |||||||
Vraagje; is er ook een groot IRC kanaal voor VB programmeurs? ![]() ![]() | ||||||||
Xsysstar | maandag 8 augustus 2005 @ 19:04 | |||||||
Zou er vast wel zijn, maar ik hou niet zo van IRC ![]() | ||||||||
EggsTC | dinsdag 9 augustus 2005 @ 09:19 | |||||||
quote: Beter maken we er zo 1 zelf, voor FOK!-VBers ofzo ![]() | ||||||||
Chandler | dinsdag 9 augustus 2005 @ 23:24 | |||||||
Ik houd ook niet zo van IRC maar vragen beantwoorden gaat meestal sneller.. Ps iemand een idee voor het volgende!: Wanneer mijn progie meerdere bestanden upload (of 1 grote) en ik klik ff op een ander progie en keer dan terug, dan wordt pas mijn window ververst na dat de actie geklaard is... hoe kan ik zorgen dat ook onder een actie mijn x etc buttons klikbaar blijven? Snappie? | ||||||||
Xsysstar | zaterdag 13 augustus 2005 @ 22:50 | |||||||
DoEvents in de lus plaatsen ![]() | ||||||||
Burbo | zondag 14 augustus 2005 @ 15:24 | |||||||
Ik ben zelf een programmatje aan het schrijven in VB6, maar nu zoek ik een manier om mijn CPU-temperatuur en Case-temperatuur uit te lezen. Ik heb wel wat gelezen over performance counters, maar daar kan ik me verder weinig wijs uit maken. Hetzelfde geldt voor het uitlezen van het geluid, ik wil kunnen zien hoe sterk het geluid is wat naar mn boxen gaat, omdat ik een VU-meter wil gaan maken. Weet iemand hoe ik dit het beste aan kan pakken? ![]() | ||||||||
Xsysstar | zondag 14 augustus 2005 @ 15:28 | |||||||
Niet in VB ben ik bang; tenminste: ik weet niet hoe VB zo diep in het systeem kan graven. Er zijn wel Windows-APIs om rechtstreeks het geheugen uit te lezen en te schrijven door een geheugenadres op te geven, maar daar wil je niet aan beginnen ![]() Ik denk eigenlijk zelfs dat je idee niet zomaar lukt, want waarschijnlijk zal elk moederbord zijn eigen manier van opslaan van die informatie hebben (immers: elke moederbordfabrikant heeft (meestal) zijn eigen hulpprogrammaatjes, zoals Asus Probe om de temperatuur mee bij te houden). | ||||||||
whosvegas | zondag 14 augustus 2005 @ 15:42 | |||||||
quote:Het enige wat je kan doen is op zoek gaan naar windows API's Of vraag het eens in het Dev forum op tweakers.net | ||||||||
Burbo | zondag 14 augustus 2005 @ 16:44 | |||||||
quote:API's daar heb ik geen ervaring mee, dus ik weet niet of dat gaat lukken. Weet je wel een oplossing voor het geluid? | ||||||||
whosvegas | zondag 14 augustus 2005 @ 19:08 | |||||||
quote:Met geluid heb ik geen ervaring Misschien is het zinvol om je eerst in Windows API programmeren te verdiepen. Met API calls kun je vanuit VB programma's veel meer doen dan dat je alleen de VB library's gebruikt. En zo moeilijk is het allemaal ook weer niet. Afhankelijk van je ervaring denk ik dat je met een paar avondjes studeren een heel eind komt. | ||||||||
whosvegas | zondag 14 augustus 2005 @ 19:17 | |||||||
Misschien heb je hier iets aan: http://www.planet-source-(...)?lngWId=1#categories Er is ook een sectie Sound/MP3 | ||||||||
Burbo | zondag 14 augustus 2005 @ 19:18 | |||||||
quote:Misschien wel de moeite waard idd, maar ik denk dat er toch wel een makkelijkere manier moet zijn om ergens het geluidniveau vandaan te halen ![]() | ||||||||
Burbo | zondag 14 augustus 2005 @ 20:15 | |||||||
quote:Ziet er goed uit, maar bij bijna alle programma's krijg ik "couldn't get wavein\waveout", dat blijkt dus een soort van geluidskaartprobleem te zijn, ik denk dat ik dus nog op zoek moet gaan naar wat anders ![]() | ||||||||
whosvegas | zondag 14 augustus 2005 @ 22:44 | |||||||
quote:Ik bedoel het meer algemeen. Als je verder wilt met programmeren zou ik me er zeker in gaan verdiepen. Hierdoor krijg je een beter inzicht in hoe een win32 programma werkt. | ||||||||
Burbo | zondag 14 augustus 2005 @ 22:51 | |||||||
quote:Dank je voor de top, waarschijnlijk zal ik dat wel enigszins doen dan binnenkort ![]() |