1 2 3 4 5 6 7 8 9 | dim sFolder as string set fso = new FileSystemObject sFolder = QueryValue(HKEY_CURRENT_USER, "Software\quicktreecopy", "todir") if fso.FolderExists(sFolder) = true then toDir.path = sFolder else toDir.path = "c:" end if |
1 |
Je zegt dat de directory niet bestaat.quote:Op vrijdag 7 april 2006 22:42 schreef Chandler het volgende:
hoe moet dat dan anders? want het werkt wel als ik juiste gegevens in het register hebdus snap niet waar de fout zit?
1 2 3 4 5 6 7 8 9 | If QueryValue(HKEY_CURRENT_USER, "Software\quicktreecopy", "todir") _ > "" Then toDir.path = QueryValue(HKEY_CURRENT_USER, "Software\quicktreecopy", "todir") GoTo topathklaar End If topathErr: toDir.path = "c:\" topathklaar: |
1 |
1 |
1 2 3 4 5 | If QueryValue(HKEY_CURRENT_USER, "Software\quicktreecopy", "todir") > "" Then toDir.path = QueryValue(HKEY_CURRENT_USER, "Software\quicktreecopy", "todir") GoTo topathklaar End If |
1 2 3 4 5 | HPtimer = 0 mapleCalculator.maxHPsaved.Text = CStr(CInt(mapleCalculator.maxHPsaved.Text) + _ CInt(mapleCalculator.maxHPadd.Text)) End If |
1 |
Ook QueryValue moet een padnaam met een \ aan het eind terug geven, controleer de registry of maak een functie die een \ toevoegt als die niet aanwezig is.quote:correct, maar dan nog geeft het een error op toDir.path = QueryValue daar blijft het programma op hangen!
oftweel hier zit het probleem op regel 3!! (toDir.)
1
2
3
4
5On Error GoTo topathErr
If QueryValue(HKEY_CURRENT_USER, "Software\quicktreecopy", "todir") > "" Then
toDir.path = QueryValue(HKEY_CURRENT_USER, "Software\quicktreecopy", "todir")
GoTo topathklaar
End If
1 |
1 |
1 2 3 4 | Label = lbl & Job & Labelnummer Label.Visible = True Next |
Val() is zo'n wazige VB6 functie. Die kan je beter niet gebruiken.quote:Op woensdag 4 april 2007 10:17 schreef DaFan het volgende:
Tis gelukt Rembo, maar ik heb het gewoon gedaan met Val() zodat als er een String in staat het resultaat gewoon 0 is, dat werkte uiteindelijk ook
Je zou de labels allemaal in een array kunnen zetten.quote:Andere vraag:
Ik wil in een keer een hele grote groep labels en textboxes visible maken. [...]
Een array van labels is het makkelijkste, dan wordt het ongeveer zo:quote:Op woensdag 4 april 2007 14:09 schreef SuperRembo het volgende:
[..]
Val() is zo'n wazige VB6 functie. Die kan je beter niet gebruiken.
[..]
Je zou de labels allemaal in een array kunnen zetten.
Of misschien kan je er voor zorgen dat ze allemaal op 1 panel o.i.d. staan zodat je ze in 1x zichtbaar kan maken.
Of je kunt door de controls collection van het form / panel / groupbox kunnen lopen.
1 2 3 4 5 6 | Dim k as integer For k = 0 To 29 Label(k).Visible = True Next |
quote:Val() is zo'n wazige VB6 functie. Die kan je beter niet gebruiken.
VB.net?quote:Op vrijdag 20 juli 2007 16:39 schreef Chandler het volgende:Sr
Nog 1 vraagje.
Ik werk nu met line input, echter werkt dit bij 1 groot tekst bestand niet.. Line input ziet niet dat het een tekst bestand is en leest gelijk het hele bestand uit... wat kan ik hier aan veranderen zodat hij wel alle regels leest?
Anyone?
quote:A line is defined as a sequence of characters followed by a carriage return (0x000d), a line feed (0x000a), a carriage return followed by a line feed, Environment.NewLine, or the end of stream marker. The string that is returned does not contain the terminating carriage return and/or line feed. The returned value is a null reference (Nothing in Visual Basic) if the end of the input stream has been reached.
Ik hoop dat het werkt, want die converter kan geen UTF-8 tekens converterenquote:Op vrijdag 20 juli 2007 20:12 schreef SuperRembo het volgende:
Met een TextReader zou het moeten kunnen. ReadLine geeft 1 regel terug:
De TextReader class bestaat al sinds .NET 1.0. Het lijkt me niet dat er heel veel in veranderd is.quote:Op vrijdag 20 juli 2007 21:26 schreef Chandler het volgende:
This page is specific to .NET Framework 3.0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | While Not readBytes >= fileSize 'EOF(freeNum) ' Line Input #FreeNum, txt ' 1 whole line is read Do While readByte <> Chr(10) Get #freeNum, , readByte Debug.Print Len(txt) & "-" & Len(readByte) & "-" & Asc(readByte) txt = txt & readByte Loop readBytes = readBytes + Len(txt) loop |
1 2 3 4 5 6 7 8 | Dim reader As New System.IO.StreamReader("C:/foo.txt") While Not reader.EndOfStream line = reader.ReadLine() '... End While reader.Close() |
Visual Studio Express is gratis.quote:Op zaterdag 21 juli 2007 12:24 schreef Chandler het volgende:
Ik heb helaas geen VBnet... (jawel, maar weet niet waar, moet toch ook gewoon in vb6 kunnen, zoals bovenstaand maar dan anders...)
Geen idee, ik ben niet zo thuis in die VB6 file handling.quote:Ennuh opzich is mijn code toch wel juist?
1 2 3 4 5 6 7 8 9 10 | Get #freeNum, pointCnt, readByte readBytes = readBytes & Chr(readByte) pointCnt = pointCnt + 1 Debug.Print readByte Debug.Print pointCnt & " - " & fileSize & " - " & Len(readBytes) & vbCrLf Loop While (readByte <> 13 Or pointCnt < fileSize) |
Vreemt. Wat je zou kunnen proberen is in plaats van een Do loop een For loop gebruiken. Dan zou het worden:quote:Op zondag 22 juli 2007 15:50 schreef Chandler het volgende:
Hmm... Lijkt mij toch wel aardig goed te zijn :P
Ik heb mijn code een beetje aangepast en heb dit nu in een loop staan.
[ code verwijderd ]
echter wil de loop niet stoppen als readByte (10 of 13) is :{ Wat doe ik fout? :D
1 2 3 4 5 6 7 8 9 10 | Get #freeNum, I, readByte readBytes = readBytes & Chr(readByte) Debug.Print readByte Debug.Print I & " - " & fileSize & " - " & Len(readBytes) & vbCrLf If readByte = 13 Then Exit For Next I |
1 2 3 4 5 6 7 8 9 10 11 | Dim fso, myFile As Object Dim line As String Set fso = New Scripting.FileSystemObject Set myFile = fso.OpenTextFile("c:foo.txt", forReading) Do While Not myFile.AtEndOfStream line = myFile.ReadLine '... Loop myFile.Close |
1 |
1 |
1 2 3 4 5 6 7 8 9 10 11 12 | Dim strNum As String Dim i As Integer On Error Resume Next For i = 1 To Len(strValue) If IsNumeric(Mid(strValue, i, 1)) Then strNum = strNum & Mid(strValue, i, 1) Next i ExtNum = CInt(strNum) End Function |
Les 1: nooit "on error resume next" gebruiken tijdens debuggen!quote:Op zaterdag 10 mei 2008 14:02 schreef Woeiii het volgende:
Ben bezig met een kleine functie om een getal van 6 aaneensluitende nummers uit een string te halen, maar t wil niet echt lukken:
[ code verwijderd ]
Deze haalt alle getallen uit een lap tekst , maar werkt niet goed hij returned namelijk steeds nul , heeft iemand een oplossing?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | Dim strNum As String Dim i As Integer 'On Error Resume Next For i = 1 To Len(strValue) If IsNumeric(Mid(strValue, i, 1)) Then strNum = strNum & Mid(strValue, i, 1) Next i ExtNum = Val(strNum) 'On Error GoTo 0 End Function |
De truuk is net dat je die code zelf moeten maken.quote:Op dinsdag 7 oktober 2008 10:54 schreef hello_moto1992 het volgende:
Sorry voor de grote kick, maar...
Ik zou graag een programma willen maken dat een rekening bij houdt in een kantine/keet. Je hebt dus een lijstje met namen, en daar achter staat bier, wijn, cola, malibu etc.
In Excel kun je "view code" doen, maar dan staat er niks. Hoe kan dat?
En hoe maak ik het handigste zo'n programma?
Ik kwam er ook achterquote:Op dinsdag 7 oktober 2008 11:07 schreef DaFan het volgende:
Kan je beter in het Excel topic doen.
[EXCEL] Het grote Excel vragen topic, #7
En onder View code is het de bedoeling dat je zelf de code schrijft
vb kan je redelijk simpel met mysql laten comminicerenquote:Op dinsdag 7 oktober 2008 11:19 schreef DaFan het volgende:
In VB is het een stuk lastiger omdat je geen 'database' hebt. Als je het in Excel icm VBA doet heb je gewoon een overzicht waar je idd gewoon een knopje kan drukken achter iemands naam, waarbij hij de waarde opzoekt die het nu is, en er 1 bij optelt. Simpel.
Akkoord maar niet voor een dranklijst en al helemaal niet als je nog nooit VB gebruikt hebtquote:Op dinsdag 7 oktober 2008 21:29 schreef mschol het volgende:
[..]
vb kan je redelijk simpel met mysql laten comminiceren
Als het toch op 1 PC draait zou ik eerder SQLLite of misschien Firebird gebruiken.quote:Op dinsdag 7 oktober 2008 21:29 schreef mschol het volgende:
[..]
vb kan je redelijk simpel met mysql laten comminiceren
1 2 | FileExists = oFile.FolderExists(sFullPath) |
Je gebruikt geen Option Explicit (aan het begin van je code staat in ieder bestand).quote:Op donderdag 20 mei 2010 14:02 schreef Chandler het volgende:
Idd, ik kwam er achter dat een letter qua functienaam niet goed stond en dus geen true/false (boolean) terug stuurde.. wat kun je toch over foutjes heen kijken zeg
1 |
quote:Op donderdag 20 mei 2010 14:26 schreef Chandler het volgende:
-edit-
Ini werkt al
Alles werkt op het maken van directories na...en op een of andere manier kom ik daar niet uit..
Maar ik ga er nu even lekker mee spelen!
VB6 nog? Je weet dat Microsoft inmiddels van haar .net-versies ook gratis versies van de ontwikkelstudio's uitbrengt? Onder andere Visual Basic .net 2008 is gratis te downloaden: http://www.microsoft.com/exPress/quote:Op vrijdag 21 mei 2010 15:53 schreef Chandler het volgende:
Hier te downloaden in source van visualbasic 6
Het mooie van VB.net is dat de syntax onveranderd is maar dat het op sommige punten eenvoudiger is om - bijvoorbeeld met het bestandsysteem - te werken. Om je een voorbeeld te noemen, in vb.net is er standaard een functie aanwezig om te controleren of een bestand bestaat: System.IO.File.Exists(path as string). Dat scheelt, want dan hoef je filesystemobject niet steeds opnieuw te declareren.quote:Op vrijdag 21 mei 2010 17:23 schreef Chandler het volgende:
Ja VB6hoe durf ik hoor ik je nu denken, ach het is voor mij bekender, aangezien ik zelf altijd met QuickBASIC 4.5 heb gwerkt (jaren, jaren jaren geleden!
) en dus simpeler om te begrijpen... En natuurlijk het belangrijkste, het lukt me om er iets mee te bakken!
maar goed, wie weet ga ik ooit eens .net proberen... maar dat zal pas na een volgende herinstal worden
Heb je nog tips voor de huidige code?
1 2 | MsgBox(bestandsinformatie.Extension) |
"vol" lopen van het geheugen?quote:Op zondag 23 mei 2010 11:23 schreef Chandler het volgende:
Nou geheugen valt dus tegen... 50-80mb erg schommelend... Ook gaan de eerste 10.000 bestanden aardig rap maar daarna gaat het steeds slomer... iemand een idee waardoor dit zou kunnen komen?
Leuk om te zien dat het werkt! Je zou i.p.v. "AND" ook "ANDALSO" kunnen gebruiken, dat zal iets in performance schelen. In dit voorbeeld:quote:Op zaterdag 22 mei 2010 16:23 schreef Chandler het volgende:
Dan maar weer een kleine update, zelfde bestand.
Aardig wat ifjes verwijderd.
nu 1 aanroep voor alle fso objecten
meer gegevens in error string.
En een exe toegevoegd... weet niet of dat handig is maar goed :)
Gaat nu zeker een stuk sneller, en volgens mij eet het ook minder geheugen..
1 |
1 |
Grappig dat dat zo erg scheelt :)quote:Op zondag 23 mei 2010 22:01 schreef Chandler het volgende:
Yup, dat was idd het euvel, voor ieder bestand dat na controle op datum geskipt werdt was terug te vinden in de log en dat is met 200k aan bestande niet grappig... nu deze weg gehaalt zit het geheugen gebruik op 5MB en loopt het nu alle bestanden in zo'n 5 minuten langs!!!! ipv een halve dag :D
|
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |