abonnement Unibet Coolblue Bitvavo
pi_26250129
Dag mensen,

Ik dacht omdat ik iets niet snap maar weer voor ieder probleem een klein topic te openen lijkt me niet echt heel handig, dus open ik ook voor visualbasic maar een dummies topic. want mijn vraag is nogal dummy

Reeds ben ik bezig met een kleine tool waarmee ik bv _-_ kan omzetten naar [spatie]-[spatie] in bestandsnamen en directories.. nu kan ik dit reeds wel in 1 directory maar het is de bedoeling dat het ook gaat werken in een 'tree'. Oftewel een boomstructuur kan doorzoeken naar dit soort bestanden en deze dan gaat 'renamen'.

Nu was ik vandaag opzoek naar een werkende source die een directorie stuctuur kan doorzoeken maar helaas heb ik geen goede gevonden, tenministe niet een waar vele modules aan vast zitten en ik weet dat er meerdere te vinden zijn maar op een of andere manier kon google en gathering me niets vertellen over het geen dat ik zoek.. Fok wilde mij uiteraard weer niet helpen omdat de search engine uit staat..

Dussuh vraag ik het maar aan de gebruikers.

Hopend op een werkende en goede oplossing.

ik draai VB6 zonder extra's

The people who lost my respect will never get a capital letter for their name again.
Like trump...
  vrijdag 15 april 2005 @ 15:49:19 #2
42782 QuietGuy
opscheppende pats-nerd
pi_26250283
Dus je wilt recursief mappen inlezen eigenlijk? De rest kan je dan waarschijnlijk zelf wel.
pi_26250828
Dat is ontzettend simpel Chandler.
Gebruik het File System Object.
Een uitgewerkt voorbeeldje vind je hier:
http://juicystudio.com/tutorial/vb/files.asp#rec

Wel ff dit doen in je VB projectje. De scripting runtime staat standaard op een systeem:
quote:
Before using the FSO, you have to add the "Microsoft Scripting Runtime Library" to the current project by selecting "Project", "References" from the menu bar.
  vrijdag 15 april 2005 @ 16:20:49 #4
25637 hbruyn
Ben benieuwd
pi_26251033
Gewoon in de for each loop waar je de directories doorloopt de functie opnieuw aanroepen, en de huidige directorie meegeven als (optie).
pi_26254605
Dankjewel mensen (vooral SOP!) ik heb met die site en dergelijke voorbeelden een goed lopend zoek systeem weten te maken maar nu zit ik met iets anders (heb helaas niet continue internet anders zou ik het misschien zelf gevonden hebben). Hoe kan ik een text met enters aan een textbox toevoegen (vbCrLf werkt niet en chr(13) & chr(10) werken helaas niet).

Iemand een idee/
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_26255039
textbox op multiline zetten
pi_26255069
Wederom vriendelijk bedankt, ik ga weer verder spielen!
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_26255270
't is meer Visual Basic voor Chandler door Sop
  vrijdag 15 april 2005 @ 19:38:19 #9
42782 QuietGuy
opscheppende pats-nerd
pi_26255366
quote:
Op vrijdag 15 april 2005 19:34 schreef sop het volgende:
't is meer Visual Basic voor Chandler door Sop
Zal ik het topic veranderen?
pi_26256917
Whahaha, nee doe maar niet, dan kunnen meerdere mensen hier nog gebruik van maken.

* Chandler gaat nu ff opzoek naar een routine voor het 'veranderen' van strings (find and replace)
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_26260787
ps weet iemand waar ik documentatie kan downloaden voor vb6 (niet .NET dus).. want kan zelf op msdn.com niets vinden en heb helaas geen cd van de library zelf tot mijn beschikking..
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_26261029
Maak een form genaamd 'form1', voeg vervolgens een listbox genaamd 'list1' toe. Maak daarna een module aan en voeg de volgende code toe:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
Public Function ListFilesInDir(ByVal path As String, ByVal filespec As String) As Collection
    Dim spec As Variant
    Dim file As Variant
    Dim subdir As Variant
    Dim subdirs As New Collection
    Dim specs() As String

    Set ListFilesInDir = New Collection

    If Right$(path, 1) <> "\" Then path = path & "\"
    
    specs() = Split(filespec, ";")
   
    On Error Resume Next

    LoadingDirsActive = True

    For Each spec In specs
        file = Dir$(path & spec)
        Do While Len(file)
            FileDetect = StrConv(Right(file, 3), vbLowerCase)
            file = path & file
            
            If IsSupportedFile(FileDetect) Then
                NumAddFils = NumAddFils + 1
                FilesPath = 1
                Form1.List1.AddItem file
            End If

            file = Dir$
        Loop
    Next
    
    file = Dir$(path & "*.*", vbDirectory)
    
    Do While Len(file)
        If file = "." Or file = ".." Then

        ElseIf (GetAttr(path & file) And vbDirectory) = 0 Then

        Else
            file = path & file
            subdirs.Add file, file
        End If

        file = Dir$
    Loop

    For Each subdir In subdirs
        For Each file In ListFilesInDir(subdir, filespec)
            FileDetect = StrConv(Right(file, 3), vbLowerCase)
            
            If IsSupportedFile(FileDetect) Then
                NumAddFils = NumAddFils + 1
                FilesPath = 1
                Form1.List1.AddItem file
            End If
        Next
    Next

    LoadingDirsActive = False
End Function


Voeg nu toe in 'Form_Load':

1Call ListFilesInDir(files, "*.*")


Waar de 'files' parameter het pad is wat je wil doorzoeken.
  zondag 17 april 2005 @ 14:04:53 #13
42782 QuietGuy
opscheppende pats-nerd
pi_26295245
Dan nu even een vraagje van mij

Ik ben bezig met een statistiekenscript voor Windows-webservers. Ik weet dat er al een aantal zijn maar ik wil er zelf ook een maken.

Ik ben al een heel eind, VB genereert een include file welke te gebruiken is in PHP of ASP, wat je maar wilt. Daarop kan je een aardige output baseren, zoals bijvoorbeeld http://quietguy.is-a-geek.org/qgstats/

Nu wil ik ook de temperatuur van de hardware hier bij plaatsen. Eenander statistiekenscript wat ik voorheen gebruikte, gebruikte hiervoor Motherboard Monitor. Ik wil dus niet afhankelijk zijn van steeds losse programmaatjes en wil dit dus ook in mijn Visual Basic-programma krijgen.

Nu zou dit opvraagbaar moeten zijn door middel van de WMI-set Win32_TemperatureProbe maar ik krijg daar geen output van terug. Van andere WMI-sets krijg ik wel mooi alle gegevens die ik wil.

Kan iemand mij een klein voorbeeldje geven van het opvragen van temperaturen, met of zonder WMI?
pi_26295709
quote:
Op zondag 17 april 2005 14:04 schreef QuietGuy het volgende:
Dan nu even een vraagje van mij

Ik ben bezig met een statistiekenscript voor Windows-webservers. Ik weet dat er al een aantal zijn maar ik wil er zelf ook een maken.

Ik ben al een heel eind, VB genereert een include file welke te gebruiken is in PHP of ASP, wat je maar wilt. Daarop kan je een aardige output baseren, zoals bijvoorbeeld http://quietguy.is-a-geek.org/qgstats/

Nu wil ik ook de temperatuur van de hardware hier bij plaatsen. Eenander statistiekenscript wat ik voorheen gebruikte, gebruikte hiervoor Motherboard Monitor. Ik wil dus niet afhankelijk zijn van steeds losse programmaatjes en wil dit dus ook in mijn Visual Basic-programma krijgen.

Nu zou dit opvraagbaar moeten zijn door middel van de WMI-set Win32_TemperatureProbe maar ik krijg daar geen output van terug. Van andere WMI-sets krijg ik wel mooi alle gegevens die ik wil.

Kan iemand mij een klein voorbeeldje geven van het opvragen van temperaturen, met of zonder WMI?
Zoiets als dit:
http://vbnet.mvps.org/index.html?code/wmi/wmitemperatureprobe.htm
  zondag 17 april 2005 @ 15:14:42 #15
42782 QuietGuy
opscheppende pats-nerd
pi_26297190
quote:
Ik krijg er geen output van, maar MotherBoard Monitor geeft wél output
(Src: tempprobe.zip)
pi_26300031
quote:
Op zondag 17 april 2005 15:14 schreef QuietGuy het volgende:

[..]

Ik krijg er geen output van, maar MotherBoard Monitor geeft wél output
(Src: tempprobe.zip)
Ik ook niet, heb een Asus A7N8X moederbord. Heb nog een andere pc met een Abit moederbord, deze geeft de temperaturen wel door. Is dus per systeem anders, denk dat het veroorzaakt wordt doordat de 'Win32_TemperatureProbe' call niet op alle moederborden werkt...
  zondag 17 april 2005 @ 17:33:30 #17
42782 QuietGuy
opscheppende pats-nerd
pi_26300904
quote:
Op zondag 17 april 2005 17:01 schreef The_Terminator het volgende:

[..]

Ik ook niet, heb een Asus A7N8X moederbord. Heb nog een andere pc met een Abit moederbord, deze geeft de temperaturen wel door. Is dus per systeem anders, denk dat het veroorzaakt wordt doordat de 'Win32_TemperatureProbe' call niet op alle moederborden werkt...
Bij mij is het dus ook een asus moederkoekje... balen... Andere oplossing zonder WMI anyone?
  zondag 17 april 2005 @ 17:47:02 #18
42782 QuietGuy
opscheppende pats-nerd
pi_26301319
Hmm. op http://www.ionus.at/content/projects/mbmvb6/ staat een source, maar dan moet je MBM installeren, da's juist wat ik wil overslaan
pi_27671664
Nu weer een leuke vraag(en)

1. hoe kan ik met een vb aplic meerdere trayicons benutten.
2. hoe kan ik bv een procentage aangeven (vb 1t/m 100).. in de icon zonder 100 icons te hoeven maken!

The people who lost my respect will never get a capital letter for their name again.
Like trump...
  maandag 6 juni 2005 @ 12:35:05 #20
42782 QuietGuy
opscheppende pats-nerd
pi_27671707
1. er is een control die je meerdere malen in VB kan plaatsen. Dus kan.
2. Je kan geloof ik pset() gebruiken op de tray. Dan ga je dus plaatjes uittekenen.
pi_27675659
hmm, je maakt het me niet gemakkelijk zie ik al wel weer, mja ik ga er wel even mee spelen!.
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  maandag 6 juni 2005 @ 15:02:51 #22
42782 QuietGuy
opscheppende pats-nerd
pi_27676531
quote:
Op maandag 6 juni 2005 14:40 schreef Chandler het volgende:
hmm, je maakt het me niet gemakkelijk zie ik al wel weer, mja ik ga er wel even mee spelen!.
Het hoeft ook niet makkelijk te zijn, zo leer je weer wat
pi_27677429
Chandler: Bedank QG eens voor zijn mooie Network Traffic module!
  maandag 6 juni 2005 @ 15:29:16 #24
42782 QuietGuy
opscheppende pats-nerd
pi_27677495
quote:
Op maandag 6 juni 2005 15:27 schreef sop het volgende:
Chandler: Bedank QG eens voor zijn mooie Network Traffic module!
ah, hij verspreid zich al
pi_27678370
quote:
Op maandag 6 juni 2005 15:29 schreef QuietGuy het volgende:

[..]

ah, hij verspreid zich al
Kenmerk van opensource: andermans code verspreid je makkelijk.
pi_27684335
voor QG!!! en idd sop...

QG BEDANKT!!!
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_27699740
Next questions.

Van Sop heb ik een stukje code, echer zit daar een timer1_timer in (oftewel timer) deze draait niet als ik het programmatje heb geminimaliseerd of naar de tray heb geschopt, hoe krijg ik dat wel voor elkaar?

Tweede is hoe krijg ik een textje op een plaatje? (picturebox?)
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_33700623
Een andere vraag!.

Ik heb 2 forms..



en



nu zie je dat op het eerste plaatje 2x brouwse staat... nu wil ik dus het 2e form een directory laten selecteren (dat lukt al) maar deze terug geven aan text 1 of text 2. Echter heb ik geen flauw idee hoe ik kan kijken welke button ik heb aangeklikt om data te plaatsen op de juiste plaats!?

Iemand een idee?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_33700887
Dat browseschermpje kun je beter niet zelf bouwen. Dat is namelijk een standaard component van windows. Je kunt daar beter de CommonDialogs voor gebruiken. VBAccelerator heeft daar wel het een en ander over geschreven en ook Google biedt uitkomst.

Hier een link naar een artikel op vbaccelerator. Een extra DLL is overigens niet nodig om van commondialogs gebruik te maken (o.a. een folderbrowser).
pi_33701070
maar ok, als ik dat gebruik moet ik ook nog de data op de juiste plaats zien te krijgen, en dat lukt nu helaas nog niet

Wat ik al heb (http://upload.bruggema.nl/index.php?i=v&ip=1372487152&name=backup directories.zip)

[ Bericht 19% gewijzigd door Chandler op 04-01-2006 17:57:27 ]
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_33701427
quote:
Op woensdag 4 januari 2006 17:51 schreef Chandler het volgende:
maar ok, als ik dat gebruik moet ik ook nog de data op de juiste plaats zien te krijgen, en dat lukt nu helaas nog niet

Wat ik al heb (http://upload.bruggema.nl/index.php?i=v&ip=1372487152&name=backup directories.zip)
Is niet zo moeilijk. Ik pas je source even aan en plaats de link hier zometeen wel.
pi_33701465
als je wil, zet er dan ff comments bij... dan kan ik er van leren
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_33701657
quote:
Op woensdag 4 januari 2006 18:05 schreef Chandler het volgende:
als je wil, zet er dan ff comments bij... dan kan ik er van leren
Ik heb alleen het volgende aangepast:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Private Sub Command1_Click()
    If lister.view = "from" Then
        If Right$(Dir.Path, 1) = "\" Then
            lister.fromDir.Text = Dir.Path
        Else
            lister.fromDir.Text = Dir.Path & "\"
        End If
    ElseIf lister.view = "to" Then
        If Right$(Dir.Path, 1) = "\" Then
            lister.toDir.Text = Dir.Path
        Else
            lister.toDir.Text = Dir.Path & "\"
        End If
    End If
    
    Unload Me
    
    'MsgBox (Dir.Path & " enzo " & view)
End Sub


Dus gewoon kijken wat voor waarde de variable 'view' heeft en dan de juiste textbox op de form 'lister' aanpassen. Ik heb ook een functie ingebouwd die checkt of er een '\' achter het pad staat.
pi_33701793
omg natuurlijk, ik ben helemaal vergeten om ook de form aan te geven... dat is natuurlijk erg belangrijk!!! tnx man!... dit helpt me al weer een heel stuk verder!!! tnx!.
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_35204847
Vraagje over VB-tags bij tekstopmaak:

Achter een gewoon tekstblok is het mogelijke een extra tekstblok toe te voegen; dit extra tekstblok wordt pas zichtbaar als de muiscursor op de gewone tekstblok geplaatst wordt.

De syntax lijkt op [spoiler=GewoneTekst]ExtraTekst[/spoiler] ... maar is niet correct. Wat is dan wel de goede syntax?
pi_35207010
intresting..
pi_35215016
quote:
Op vrijdag 17 februari 2006 22:15 schreef Gajus het volgende:
Vraagje over VB-tags bij tekstopmaak:

Achter een gewoon tekstblok is het mogelijke een extra tekstblok toe te voegen; dit extra tekstblok wordt pas zichtbaar als de muiscursor op de gewone tekstblok geplaatst wordt.

De syntax lijkt op [spoiler=GewoneTekst]ExtraTekst[/spoiler] ... maar is niet correct. Wat is dan wel de goede syntax?
Waar heb je het over?
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_35215044
Misschien is een wat duidelijker uitleg handig in deze zaak? weet je wel zekers dat je het over VisualBASIC hebt?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_35223825
quote:
Op zaterdag 18 februari 2006 10:40 schreef Chandler het volgende:
Misschien is een wat duidelijker uitleg handig in deze zaak? weet je wel zekers dat je het over VisualBASIC hebt?
Binnen een tekst kun jij tags plaatsen zoals (b) en (/b), maar dan met hoekige haken. Zo bestaan er ook tags om extra tekst toe te voegen aan een normale tekst. Ik weet dat die tags bestaan en toepasbaar zijn binnen het Forum aangezien ik zij ooit heb gebruikt (maar dat was in de Preview-mode, dus kan ik het niet terugvinden).

Voordat ik mijn vraag hier stelde, heb ik uitgebreid gegoogled. Daarbij ben ik de termen tegengekomen zoals SML-code (SML= Simple Markup Language), BB-code (BB=?) en ook VB-code (VB= VisualBasic).

Ik ben van de ArpaNet-generatie en recentere ontwikkelingen zoals VisualBasic zijn aan mij voorbij gegaan. Jouw vraag of dit een VisualBasic aangelegenheid betreft, kan ik dan ook niet bevestigen of ontkennen.
  zaterdag 18 februari 2006 @ 16:48:05 #40
2671 Aaargh!
Gebruik op eigen risico.
pi_35224857
quote:
Op zaterdag 18 februari 2006 16:13 schreef Gajus het volgende:
(...) en ook VB-code (VB= VisualBasic).
Jij doelt op vB-code (vBulletin, een webforum pakket)
quote:
Ik ben van de ArpaNet-generatie en recentere ontwikkelingen zoals VisualBasic zijn aan mij voorbij gegaan. Jouw vraag of dit een VisualBasic aangelegenheid betreft, kan ik dan ook niet bevestigen of ontkennen.
VisualBasic is een soort van RAD tool met een BASIC achtige syntax, voornamelijk gebruikt door (zoals het topic al aangeeft) dummies.
It is impossible to live a pleasant life without living wisely and well and justly.
And it is impossible to live wisely and well and justly without living a pleasant life.
pi_35275554
quote:
Op zaterdag 18 februari 2006 16:48 schreef Aaargh! het volgende:
Jij doelt op vB-code (vBulletin, een webforum pakket)

VisualBasic is een soort van RAD tool met een BASIC achtige syntax, voornamelijk gebruikt door (zoals het topic al aangeeft) dummies.
Mijn dank voor het oplossen van dit misverstand.
Ik zal mijn vraag in een ander subforum stellen.

Off topic:
Ca. 25 jaar geleden heb ik noodgedwongen BASIC gebruikt. Ik heb het altijd als een (inmiddels gepasseerde) kinderziekte van de PC beschouwd. Hilarisch te vernemen dat Visual Basic een doorontwikkeling van BASIC is.
  maandag 20 februari 2006 @ 11:50:00 #42
15929 DiRadical
Everything's ruined
pi_35282793
quote:
Op woensdag 4 januari 2006 18:11 schreef The_Terminator het volgende:

[..]

Ik heb alleen het volgende aangepast:
[ code verwijderd ]

Dus gewoon kijken wat voor waarde de variable 'view' heeft en dan de juiste textbox op de form 'lister' aanpassen. Ik heb ook een functie ingebouwd die checkt of er een '\' achter het pad staat.
Ai, dit maakt het wel heel erg complex, zelfs voor zo'n simpel toolje.
Het is niet verstandig om het aangeroepen scherm zo afhankelijk te maken van het aanroepende scherm.
(Wat ga je doen als je een derde knop met dezelfde functionaliteit wil, op hetzelfde of een ander scherm)

Ik zou een public property toevoegen aan het brouwser scherm. Deze kan dan vanaf het aanroepende scherm worden uitgelezen.
Dat maakt het onafhankelijk van het aantal knoppen op het scherm en zelfs van deze applicatie
Je kunt het dan ook gebruiken in een ander project of op andere scherm binnen je huidige project
Het brouwser scherm ziet er dan zo uit.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Private mvarDirSelected As String
Private Sub Command1_Click()
    Me.SelectedDir = Dir.Path
    Me.Hide
    'MsgBox (Dir.Path & " enzo " & view)    
End Sub

Private Sub Drive_Change()
    Dir.Path = Drive.Drive
End Sub

Public Static Property Get SelectedDir() As String
    SelectedDir = mvarDirSelected    
End Property

Public Static Property Let SelectedDir(ByVal sNewValue As String)
    Dim tmpdir As String
' Dit voor een beetje controle op het formaat van de binnenkomende string als het property van buiten wordt gezet. Waterdicht is deze niet

    If InStr(1, sNewValue, ":\", vbTextCompare) > 0 Then
        Drive.Drive = sNewValue
        Dir.Path = sNewValue
    End If
' Einde controle
'Code uit Command1_click, maar een beetje aangepast

    If Right(sNewValue, 1) = "\" Then
       tmpdir = sNewValue
    Else
       tmpdir = sNewValue + "\"
    End If
    mvarDirSelected = tmpdir
End Property

Voor het scherm Lister

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Private Sub FromBrouwse_Click()
    'Ik heb een hekel aan het standaard scherm dat VB in het geheugen kwakt.
    'Je hebt veel minder controle op die manier.
    'Daarom definieer ik altijd nieuwe scherm objecten die na gebruik weg gooi.
    '
    Dim frmFrom As Brouwser
    Set frmFrom = New Brouwser
    '
    'optioneel kun je ook de geselecteerde directory in het brouwser scherm zetten
    ' De huidige directory wordt dan voor geselecteerd
    '
    If Trim(fromDir.Text) <> "" Then
        frmTo.SelectedDir = fromDir.Text
    End If
    'Laat het scherm zien
    frmFrom.Show vbModal
   
    'Haal de waarde op. het scherm zit nog in het geheugen en is "aanspreekbaar"
    'Zolang je GEEN grafische objecten aanspreekt zal het niet opnieuw geladen worden !
    '!Dit is laatste is erg belangrijk!
    fromDir.Text = frmFrom.SelectedDir

    'Gooi het scherm weg
    Unload frmFrom
    Set frmFrom = Nothing
End Sub

Private Sub ToBrouwse_Click()
    Dim frmTo As Brouwser
    Set frmTo = New Brouwser
    If Trim(toDir.Text) <> "" Then
        frmTo.SelectedDir = toDir.Text
    End If
    frmTo.Show vbModal
    toDir.Text = frmTo.SelectedDir
    Unload frmTo
    Set frmTo = Nothing
End Sub

Zoals je ziet heb je de variabele view niet nodig.
Je weet namelijk op welke knop je drukt (de knop waarvan het event afgaat)
Wellicht kost het iets meer tijd om dit initieel te maken, maar een nieuwe knop toevoegen kost dan weer veeeel minder tijd.
Happyness is nature's way of informing human resources that you're overpaid
-Catbert: Evil director of HR
pi_35283969
Ik ook een VB vraag! Het gaat over de Timer, ik wil m meerdere malen naast elkaar laten lopen (4x) om iets af te tellen op een knop tot het moment dat die knop weer vrijgegeven wordt.

ik gebruik nu de volgende Do While Loop:
1
2
3
4
5
6
7
8
Do While (Timer <= StartCrime + PauseCrime)
       DoEvents
       btnCrime.Enabled = False
       btnCrime.Caption = "Waiting " & Round(StartCrime - Timer + PauseCrime) & " secs"
       PauseCrime = PauseCrime - 0.000001
       blnCrime = False
      Call checkCar
Loop


De button wordt disabled, de titel telt af in secondes. De pausetijd (PauseCrime) wordt minimaal veranderd vanwege andere stukjes code in de Form maar das hier niet van toepassing. De boolean wordt weer False om andere dingen te kunnen checken en er wordt een checkCode opgeroepen om te kijken of de andere timer loopt.

Maar omdat ik een vrij snelle computer heb gaat ie echt 100 loops per seconde doen ongeveer waardoor je dus de knop ziet flitsen en gaan als een idioot, wat erg irritant is.

Wat wil ik
Ik wil dus eigenlijk een Do While Loop die echt maar 1x per seconde loopt...enig idee? (En ondertussen ook nog in andere Do While Loops kan hangen omdat er dus nog 3 soortgelijke knoppen zijn).
  maandag 20 februari 2006 @ 12:41:04 #44
2671 Aaargh!
Gebruik op eigen risico.
pi_35284368
quote:
Op maandag 20 februari 2006 12:29 schreef DaFan het volgende:
Ik ook een VB vraag! Het gaat over de Timer, ik wil m meerdere malen naast elkaar laten lopen (4x) om iets af te tellen op een knop tot het moment dat die knop weer vrijgegeven wordt.

ik gebruik nu de volgende Do While Loop:
[ code verwijderd ]
Wat jij doet heet een busy-wait, en dat mag je NOOIT doen op een multitasking OS.

Je programma gaat dan CPU tijd gebruiken terwijl ie het niet nodig heeft, normaliter doe je dit door een thread te starten voor de teller en steeds je thread een seconde stil te zetten (je vraagt dan feitelijk aan de scheduler om je thread een seconde lang niet te laten runnen). Maar volgens mij heeft VB geen support voor multithreading

Wat je in VB waarschijnlijk kan doen is een timer maken die na 1 seconde een event genereerd (dat kan neem ik aan?) .
It is impossible to live a pleasant life without living wisely and well and justly.
And it is impossible to live wisely and well and justly without living a pleasant life.
pi_35285174
quote:
Op maandag 20 februari 2006 12:41 schreef Aaargh! het volgende:

[..]
Wat je in VB waarschijnlijk kan doen is een timer maken die na 1 seconde een event genereerd (dat kan neem ik aan?) .
Het probleem van de Timer() is dat ie telt in seconden vanaf middernacht Daarom moet je ook die <= gebruiken. Je kan m niet laten starten vanaf het moment dat je de Sub oproept.

Maar een aparte event oproepen na een seconde is ook wel een manier die eventueel te coden is...ik ga wat proberen vandeweek. (Ben ziek dus beetje concentreren op een lap code lukt me niet)
  maandag 20 februari 2006 @ 13:43:54 #46
2671 Aaargh!
Gebruik op eigen risico.
pi_35286438
quote:
Op maandag 20 februari 2006 13:05 schreef DaFan het volgende:

[..]

Het probleem van de Timer() is dat ie telt in seconden vanaf middernacht Daarom moet je ook die <= gebruiken. Je kan m niet laten starten vanaf het moment dat je de Sub oproept.
Ik heb in een grijs verleden nog wel eens met VB geprutst (nog steeds nachtmerries van). Maar volgens mij had je toen gewoon een Timer dingetje wat je b.v. op 1 seconde kon zetten en dan ging er gewoon elke seconde een event af.
It is impossible to live a pleasant life without living wisely and well and justly.
And it is impossible to live wisely and well and justly without living a pleasant life.
pi_35288095
quote:
Op maandag 20 februari 2006 13:43 schreef Aaargh! het volgende:

[..]

Ik heb in een grijs verleden nog wel eens met VB geprutst (nog steeds nachtmerries van). Maar volgens mij had je toen gewoon een Timer dingetje wat je b.v. op 1 seconde kon zetten en dan ging er gewoon elke seconde een event af.
Ik ben het nog niet tegen gekomen. Als er anderen zijn die dit topic lezen en het wel weten...graag

Alvast bedankt iig voor je hulp
  maandag 20 februari 2006 @ 15:21:25 #48
15929 DiRadical
Everything's ruined
pi_35289611
quote:
Op maandag 20 februari 2006 13:43 schreef Aaargh! het volgende:

[..]

Ik heb in een grijs verleden nog wel eens met VB geprutst (nog steeds nachtmerries van). Maar volgens mij had je toen gewoon een Timer dingetje wat je b.v. op 1 seconde kon zetten en dan ging er gewoon elke seconde een event af.
Dat klopt.
Je kunt de timer.inteval op 1000 zetten (tijd in milli seconden) en dan gaat het event elke seconde af totdat de timer disabled wordt
In het timer event kun je de timer disabelen.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Dim stDate As Date

Private Sub Form_Load()
stDate = Now()
Label1.Caption = ""
Timer1.Enabled = True

End Sub

Private Sub Timer1_Timer()
If DateDiff("s", stDate, Now()) <= 5 Then
    Label1.Caption = Label1.Caption + Format(Now(), "dd-mm-yy hh:nn:ss") + vbNewLine
Else
    Label1.Caption = Label1.Caption + "einde"
    Timer1.Enabled = False
End If
End Sub
Happyness is nature's way of informing human resources that you're overpaid
-Catbert: Evil director of HR
pi_35291436
DiRadical:
Die code van jou gaat om de 1 sec in de If functie? En dat 5x?
pi_35292147
quote:
Op maandag 20 februari 2006 15:21 schreef DiRadical het volgende:

[..]

Dat klopt.
Je kunt de timer.inteval op 1000 zetten (tijd in milli seconden) en dan gaat het event elke seconde af totdat de timer disabled wordt
In het timer event kun je de timer disabelen.
[ code verwijderd ]
Is het niet beter om een API timer te gebruiken?

Deze code moet dan in een module:

1
2
3
4
5
6
7
8
9
10
11
12
13
Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long

Dim Timer1 As Long

Function StartTimer1()
   Timer1 = KillTimer(0, Timer1)
   Timer1 = SetTimer(0, 0, 1000, AddressOf TimerSub1) 
End Function 

Function StopTimer1()
   Timer1 = KillTimer(0, Timer1)
End Function


Dit mag in een module staan, maar ook in een form:

1
2
3
Public Function TimedSub1() 
   'code in deze functie wordt om de 1000 ms getriggerd door de timer
End Function


Deze code moet in de form staan:

1
2
3
Private Sub Form_Unload(Cancel As Integer)
   StopTimer1
End Sub


Om de timer te starten gebruik je: StartTimer1
Om de timer te stoppen gebruik je: StopTimer1

Owja, niet op de stop knop van VB drukken voordat je een API timer gestopt hebt, anders crasht VB
  maandag 20 februari 2006 @ 16:59:57 #51
15929 DiRadical
Everything's ruined
pi_35293262
quote:
Op maandag 20 februari 2006 16:10 schreef DaFan het volgende:
DiRadical:
Die code van jou gaat om de 1 sec in de If functie? En dat 5x?
Ja,
Iedere seconde wordt het timer1_timer event afgevuurd.
Dat komt omdat de interval op 1000 staat in het control.
Na 5 seconden wordt de timer disabled
Dit kun je natuurlijk ook doen als je het form afsluit (het form_unload of Form_QueryUnload event)
Dan worden de functies die je in het timer event aanroept iedere seconde uitgevoerd, totdat je het scherm afsluit.
Happyness is nature's way of informing human resources that you're overpaid
-Catbert: Evil director of HR
  maandag 20 februari 2006 @ 17:06:27 #52
15929 DiRadical
Everything's ruined
pi_35293500
quote:
Op maandag 20 februari 2006 16:30 schreef The_Terminator het volgende:

[..]

Is het niet beter om een API timer te gebruiken?

Deze code moet dan in een module:
[ code verwijderd ]

Dit mag in een module staan, maar ook in een form:
[ code verwijderd ]

Deze code moet in de form staan:
[ code verwijderd ]

Om de timer te starten gebruik je: StartTimer1
Om de timer te stoppen gebruik je: StopTimer1

Owja, niet op de stop knop van VB drukken voordat je een API timer gestopt hebt, anders crasht VB
Het kan.
Maar ik vraag me altijd af of API "beter" is als het niet nodig is
Ik gebruik het liefst geen API in VB6, tenzij het niet anders kan.
Happyness is nature's way of informing human resources that you're overpaid
-Catbert: Evil director of HR
pi_35295605
Heel erg bedankt DiRadical
Ik heb nu 2 knoppen die prima werken, straks een derde eraan toevoegen

Code van de timer is nu zo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
If DateDiff("s", stDate, Now()) Then
    If blnCrime = True Then
        StartCrime = StartCrime - 1
            If StartCrime = 0 Then
                btnCrime.Caption = "Crime"
                blnCrime = False
                btnCrime.Enabled = True
                Exit Sub
            End If
        btnCrime.Caption = StartCrime
    Else: btnCrime.Caption = "Crime"
    End If
    If blnCar = True Then
        StartCar = StartCar - 1
            If StartCar = 0 Then
                btnCar.Caption = "Car"
                blnCar = False
                btnCar.Enabled = True
                Exit Sub
            End If
        btnCar.Caption = StartCar
    Else: btnCar.Caption = "Car"
    End If
End If


In de clickevents wordt de boolean True en worden ze disabled en de tijd wordt vastgesteld.
Bedankt
pi_35342883
Ik weet vanaf het begin al dat ik meerdere forms in één project kan stoppen. Dan moet het dus ook mogelijk zijn om tussen die twee te switchen.

Hoe doe ik dat? Ik draai hier VB.net 2003
pi_35343126
quote:
Op dinsdag 21 februari 2006 20:52 schreef woutabest het volgende:
Ik weet vanaf het begin al dat ik meerdere forms in één project kan stoppen. Dan moet het dus ook mogelijk zijn om tussen die twee te switchen.

Hoe doe ik dat? Ik draai hier VB.net 2003
Met een knop ofzo?

1
2
3
4
5
6
Private Sub btnSwitch_Click()

    Form1.Hide
    Form2.Show

End Sub

Eventueel kan je nog kiezen om:

1   Unload Form1


erbij te doen, maar op deze manier zou het moeten lukken.
pi_35343556
Helaas, niets pakt hij. Wel deed hij me.Hide maar die staat voor de form zelf...
Geeft overal blauwe kringeltjes en ook bij debuggen loopt hij vast...
pi_35344424
Je moet natuurlijk wel een referentie naar het form hebben dat je wil tonen of verbergen.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_35344517
ja, zover ben ik nog niet
pi_35345433
quote:
Op dinsdag 21 februari 2006 21:34 schreef woutabest het volgende:
ja, zover ben ik nog niet
<formnaam>.Show zou gewoon moeten werken
pi_35345532
quote:
Op dinsdag 21 februari 2006 21:55 schreef DaFan het volgende:

[..]

<formnaam>.Show zou gewoon moeten werken
Dan krijg ik de volgende melding:

1reference to a non-shared member requires an object reference
pi_35345832
quote:
Op dinsdag 21 februari 2006 21:58 schreef woutabest het volgende:

[..]

Dan krijg ik de volgende melding:
[ code verwijderd ]
Staan ze wel in dezelfde application? Want hij vraagt nu om een Object terwijl bij 2 Forms in dezelfde Application dat niet nodig is (omdat het object hetzelfde is).

Anders zou je dus
<objectnaam> . <formnaam> . Show
kunnen gebruiken.

Anders weet ik het ook niet, al denk ik wel dat de help er iets over te zeggen heeft.
pi_35347023
Misschien kan ik beter mezelf even de help in gaan duiken, als ik die meegeïnstalleerd heb
  woensdag 22 februari 2006 @ 12:02:47 #63
15929 DiRadical
Everything's ruined
pi_35360411
quote:
Op dinsdag 21 februari 2006 21:55 schreef DaFan het volgende:

[..]

<formnaam>.Show zou gewoon moeten werken
Niet in .NET
Er is, gelukkig, geen default instantie van het object (form) meer aanwezig in .NET
Je moet eerst het scherm definiëren en instantieren.
Dus:
1
2
dim frm as new form2
frm.show


Dim as new is niet handig in VB6, omdat je het dan niet meer naar nothing kunt zetten.
Er wordt een nieuwe instantie aangemakt als je er naar refereert, dus ook als je het naar nothing zet.
In .Net maakt dat niet meer uit.
Happyness is nature's way of informing human resources that you're overpaid
-Catbert: Evil director of HR
pi_35360436
Oh is .Net zo anders dan....sorry dan
pi_35360550
het werkt!

dankje!

Ook DeFan natuurlijk bedankt, je deed je best

[ Bericht 30% gewijzigd door woutabest op 22-02-2006 12:13:04 ]
  woensdag 22 februari 2006 @ 13:01:25 #66
15929 DiRadical
Everything's ruined
pi_35362209
quote:
Op woensdag 22 februari 2006 12:07 schreef woutabest het volgende:
het werkt!

dankje!

Ook DeFan natuurlijk bedankt, je deed je best
Als je meerdere schermen wilt, kun je natuurlijk ook een MDI applicatie maken.
Met een menu e.d.
Maar dat is afhankelijk van het type applicatie dat je wilt maken.
Happyness is nature's way of informing human resources that you're overpaid
-Catbert: Evil director of HR
pi_35363190
Toch leuk, al die termen die ik niet snap.

Ik probeer een klokje te maken. Als ik op een knop in MainMenu1 druk, komt form2 tevoorschijn waarin ik alles kan invoeren.

Nu moet ik nog even iets vinden waarbij ik de data over kan brengen. Zelf zit ik te denken aan om het op te slaan in een .txt bestand, en dat ik mijn programma dan 'refresh'.

Opslaan wil ik toch wel, dus dat wordt niet veel meer werk.
  woensdag 22 februari 2006 @ 14:31:19 #68
15929 DiRadical
Everything's ruined
pi_35365338
quote:
Op woensdag 22 februari 2006 13:30 schreef woutabest het volgende:
Toch leuk, al die termen die ik niet snap.

Ik probeer een klokje te maken. Als ik op een knop in MainMenu1 druk, komt form2 tevoorschijn waarin ik alles kan invoeren.

Nu moet ik nog even iets vinden waarbij ik de data over kan brengen. Zelf zit ik te denken aan om het op te slaan in een .txt bestand, en dat ik mijn programma dan 'refresh'.

Opslaan wil ik toch wel, dus dat wordt niet veel meer werk.
MDI is Multiple Document Interface waarbij je een scherm hebt waarin de andere scherm geopend worden
Een duidelijk, maar lelijk voorbeeld

Er zijn 1000 en 1 manieren op gegevens van het ene in het andere scherm te krijgen en opslaan in een text bestand is er 1 van. Waarschijnlijk wel 1 van de traagste.

Wat bedoel je met 'een klokje' ?
Er wat vult je in op scherm 2

Een quick en dirty methode is om de textboxen op scherm 2 "public" te maken.
Start het scherm op via
frm.showdialog
In scherm 2 Hide je het scherm als je daar op de knop drukt.
In scherm 1 kun je dan de ingevoerde waarden uitlezen en verwerken.

[ Bericht 13% gewijzigd door DiRadical op 22-02-2006 14:49:42 ]
Happyness is nature's way of informing human resources that you're overpaid
-Catbert: Evil director of HR
pi_35366714
Een simpel progje dat aftelt naar een bepaalde datum en tijd en als het zover is een melding geeft. Zegmaar een 'kom van de computer af' of een 'je hebt een afspraak'.

Zal wel niet erg moeilijk zijn
  donderdag 23 februari 2006 @ 14:39:24 #70
15929 DiRadical
Everything's ruined
pi_35406587
quote:
Op woensdag 22 februari 2006 15:11 schreef woutabest het volgende:
Een simpel progje dat aftelt naar een bepaalde datum en tijd en als het zover is een melding geeft. Zegmaar een 'kom van de computer af' of een 'je hebt een afspraak'.

Zal wel niet erg moeilijk zijn
Dit zit toch al in MS Outlook ?
KISS (Keep it simple stupid), dus blijf van de Windows Services en de tray icons af

Je kunt daar heel lang mee bezig zijn:

  • services en een mooi tray icon
  • Meerdere berichten van te voeren aan maken (soort message que)
  • bericht naar een andere computer sturen
  • enz.

    Success ermee.

    Ik moet zelf weer eens aan de slag gaan met mijn Bieb programmaatje voor al mijn boeken, CDs (muziek tot op track niveau of losse MP3), DVDs (avi en film) en video banden.
    Referenties naar de artiesten (schrijver, muzikant, acteur, regisseur) en hun rol.
    IMDB en FreeDB integratie.
    Meerdere soorten GUI's op dezelfde business logic
    enz., enz.

    Veel te groot dus en ik ben al een paar keer begonnen en gestopt met een soort datamodel.
    Maar nog steeds niet tevreden en niet echt begonnen.
  • Happyness is nature's way of informing human resources that you're overpaid
    -Catbert: Evil director of HR
    pi_35406770
    Als je vragen hebt horen we het wel
    pi_36735454
    Ik zit met een klein probleem:

    1
    2
    3
    4
    5
    6
    7
        If QueryValue(HKEY_CURRENT_USER, "Software\quicktreecopy", "todir") > "" Then
        On Error GoTo topathErr
            toDir.path = QueryValue(HKEY_CURRENT_USER, "Software\quicktreecopy", "todir")
            GoTo topathklaar
    topathErr:
            toDir.path = "c:"
    topathklaar:


    het probleem zit in todrive.path maar kan niet zorgen dat wanneer het path fout is het script naar de volgende goto gaat? wat doe ik fout?
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
      vrijdag 7 april 2006 @ 13:36:00 #73
    15929 DiRadical
    Everything's ruined
    pi_36736789
    quote:
    Op vrijdag 7 april 2006 12:56 schreef Chandler het volgende:
    Ik zit met een klein probleem:
    [ code verwijderd ]

    het probleem zit in todrive.path maar kan niet zorgen dat wanneer het path fout is het script naar de volgende goto gaat? wat doe ik fout?
    Als je todrive.path fout gaat, moet je IF toch ook fout.
    Ik lees tenminste dezelfde argumenten in de functie.

    Waneer je je on error goto voor de IF zet, zou het goed moeten gaan
    Happyness is nature's way of informing human resources that you're overpaid
    -Catbert: Evil director of HR
    pi_36737562
    ah juist, je hebt gelijk~!

    maar ook na de aanpassing blijft de error hetzelfde.

    1
    2
    3
    4
    5
    6
    7
    8
        On 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
    topathErr:
            toDir.path = "c:"
    topathklaar:


    error bij toDir.path = QueryValue dat het path niet bestaat maar k... nu moet ik dus nog weer een andere oplossing hebben.
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
    pi_36737715
    Kan je niet beter eerst QueryValue toewijzen en dan met een IF kijken of toDir.path leeg is?
      vrijdag 7 april 2006 @ 14:31:51 #76
    15929 DiRadical
    Everything's ruined
    pi_36738544
    Wat is toDir.
    Een drivelistbox of een filelistbox
    Het kan zijn dat de directory moet bestaan voordat je 'm mag toewijzen aan 1 van deze controls
    Je zou kunnen controleren of de directory bestaat via het FileSystemObject.
    Maar dan moet je in je project wel eerst een referentie zetten naar Microsft Scripting Runtime.
    Dat kan in Project-> references

    Deze staat in <je windows dir>\system32\scrrun.dll


    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim fso As FileSystemObject
    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


    [ Bericht 4% gewijzigd door DiRadical op 07-04-2006 14:35:16 (code beter gemaakt) ]
    Happyness is nature's way of informing human resources that you're overpaid
    -Catbert: Evil director of HR
    pi_36739001
    Maar het zou toch moeten werken met een onerror??? tenminste dat leek mij zo logisch...
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
      vrijdag 7 april 2006 @ 15:34:49 #78
    15929 DiRadical
    Everything's ruined
    pi_36740578
    Oeps,
    Ik had het zelf even moeten controleren in VB6 zelf
    Deze moet anders
    1toDir.path = "c:\"


    Hij crashed 2 keer.
    1 keer op de queryvalue toewijzing en de tweede keer op de c: toewijzing
    Happyness is nature's way of informing human resources that you're overpaid
    -Catbert: Evil director of HR
    pi_36753358
    hoe moet dat dan anders? want het werkt wel als ik juiste gegevens in het register heb dus snap niet waar de fout zit?
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
      zaterdag 8 april 2006 @ 17:43:04 #80
    15929 DiRadical
    Everything's ruined
    pi_36770326
    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 heb dus snap niet waar de fout zit?
    Je zegt dat de directory niet bestaat.
    Dus zou het zo moeten
    1
    2
    3
    4
    5
    6
    7
    8
    9
    On 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
    topathErr:
       toDir.path = "c:\"
    topathklaar:


    De registry key wordt correct uitgelezen maar kan niet toegewezen worden aan toDir.path
    De applicatie springt naar topathErr:
    Maar
    1toDir.path = "c:" 

    geeft ook een foutmelding. Deze bestaat ook niet.
    Het moet
    1toDir.path = "c:\"

    zijn
    Happyness is nature's way of informing human resources that you're overpaid
    -Catbert: Evil director of HR
    pi_36770462
    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
    5
    On 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
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
    pi_37380035
    Iets anders, hoe kun je iets berekenen.

    Ik heb iets in een textboxje staan en wil daar uit het getal halen en een getal bij optellen... hoe doe je dat? want form.text1.value + iets = de value van text1 + "iets" en het moet eingelijk zijn text1 + iets = ietsmeer

    Iemand een idee?
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
    pi_37382955
    Tekst omzetten naar getal, berekening uitvoeren, uitkomst omzetten naar tekst.
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
    pi_37383259
    ik dacht dat ik dat met INT kon doen maar dat gaat helaas ook niet werken int(text)
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
    pi_37384354
    CInt(), CLng() of CDbl()
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
    pi_37385990
    Inderdaad, maar toch is het probleem nog niet opgelost

    1
    2
    3
    4
    5
        If (HPtimer = mapleCalculator.maxHPsec.List(mapleCalculator.maxHPsec.ListIndex)) Then
            HPtimer = 0
            mapleCalculator.maxHPsaved.Text = CStr(CInt(mapleCalculator.maxHPsaved.Text) + _
                                              CInt(mapleCalculator.maxHPadd.Text))
        End If


    ik krijg nu weer een foutje, met of zonder cstr en snap niet wat ik fout doe!

    De fout krijg ik ook op het volgende

    1        mapleCalculator.maxMPsaved.Text = CInt(CStr(CInt(mapleCalculator.maxMPsaved.Text)))


    type-mismatch..

    iemand een idee?

    [ Bericht 18% gewijzigd door Chandler op 28-04-2006 22:11:34 ]
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
    pi_37424187
    reeds gefixt door val() te gebruiken, dit werkte namelijk ook.

    weer een andere, hoe kan ik een getal naar boven afronden ookal is het logischer om deze naar beneden af te ronden. bv 4.1 wordt 5
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
      vrijdag 5 mei 2006 @ 15:51:08 #88
    15929 DiRadical
    Everything's ruined
    pi_37578966
    RoundUp en RoundDown functie
    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
    5
     On 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 
    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.
    Happyness is nature's way of informing human resources that you're overpaid
    -Catbert: Evil director of HR
    pi_40651268
    Leuke vraag.

    Ik heb een applicatie die nogal wat data kopieeert, echter als ik die applicatie op de voorgrond houd zie ik alles wat er gebeurd. Maar als ik even een ander programma op de voorgrond heb en weer terug switch loopt als het ware de 'weergave' vast. Het programma blijft wel werken maar de weergave blijft staan. Heeft iemand een idee waardoor dit kan komen? en of hoe ik dit kan oplossen?
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
    pi_40657471
    Je moet zorgen dat af en toe de events worden afgehandeld. Dat doe je met de functie DoEvents. Die moet je af en toe aanroepen in de loop die de data verwerkt. Je moet 'm ook niet te vaak aanroepen, want het zal er wel iets langzamer door worden.
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
    pi_40691599
    Owkee, ik heb het geprobeerd en lijkt te werken.

    Nu een tweede vraag.

    Ik heb ooit een project van QuietGuy omgebouwd tot tray progie... echter krijg ik de balon niet precies onder de icon in de tray.

    source : http://dump.bruggema.nl/bwm.rar

    wie wil eens kijken wat ik fout heb gedaan!?
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
    pi_46270829
    Een kickje omhoog
    Toch leuk om het oude vertrouwde VB 6 weer te zien
    Are you nuts??
    pi_47716402
    Ik ben er ook weer eens mee aan het pielen, Visual Basic 2005 Express (ja gratis :P ).

    Hoe kan ik kijken of een String in een Textbox alleen uit cijfers bestaat of ook uit text? Ik doe het volgende namelijk maar daar crashed ie (duh) op:
    1amountG1 = CDbl(txtGrade1.Text)


    Maar je kan niet converten naar een Double als er leeskarakters in staan. Dus ik moet eerst testen of er tekst in staat en dan een error geven (of op de Change al testen en dan gewoon de invoerknop disablen).
    pi_47722948
    Dat kan op verschillende manier, welke het handigste is hangt er van af wat je er verder mee wil.
    Als je de string naar een getal om wil zetten dan moet je eens kijken naar Interger.TryParse(), Double.TryParse() of Decimal.TryParse(). Je zou ook met Like kunnen kijken of er ongeldige tekens in staan. Een regular expression zou ook kunnen, maar dat is denk ik niet nodig.
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
    pi_47723759
    Ok, tnx alvast, morgen ff naar kijken
    pi_47995659
    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

    Edit nvm al gelukt

    Andere vraag :
    Ik wil in een keer een hele grote groep labels en textboxes visible maken. Nou dacht ik slim te zijn en alle txtboves en labels ongeveer dezelfde naam te geven
    1lbl & [String] & [Double]

    En er dan doorheen te loopen zodat ik elke keer de Double kan verhogen met 1 zodat alle 29 labels niet meer visible gemaakt kunnen lopen.

    Maar ik kan hier natuurlijk geen .visible = True achter zetten.
    Iemand een idee hoe ik dit wel kan doen, snel en makkelijk zonder 2x 29 keer alles [NAAM].visible = True te doen?

    Zoiets dus:
    1
    2
    3
    4
                For Labelnummer = 1 To 29
                    Label = lbl & Job & Labelnummer
                    Label.Visible = True
                Next

    Label zou dan de naam van 29 verschillende labels worden die allemaal Visible = True moeten worden

    [ Bericht 44% gewijzigd door DaFan op 04-04-2007 13:02:06 ]
    pi_48003481
    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
    Val() is zo'n wazige VB6 functie. Die kan je beter niet gebruiken.
    quote:
    Andere vraag :
    Ik wil in een keer een hele grote groep labels en textboxes visible maken. [...]
    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.
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
    pi_48027705
    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.
    Een array van labels is het makkelijkste, dan wordt het ongeveer zo:
    1
    2
    3
    4
    5
    6
               
               Dim k as integer

               For k = 0 To 29
                    Label(k).Visible = True
               Next


    Een array is te maken door één label te copieren en dan te plakken, wel voor array kiezen als VB dat vraagt.

    [ Bericht 1% gewijzigd door The_Terminator op 05-04-2007 12:27:11 ]
      donderdag 5 april 2007 @ 07:59:44 #99
    52513 whosvegas
    The Trickster
    pi_48031041
    quote:
    Val() is zo'n wazige VB6 functie. Die kan je beter niet gebruiken.

    Hoezo, als je weet wat de functie doet, waarom zou je het niet gebruiken?
    Are you nuts??
    pi_48039959
    Val() bestaat eigenlijk alleen nog om VB wat beter backwards compatible te maken. Als je nieuwe code schrijft is het niet handig om oude VB functies als Val(), Mid() en Format() te gebruiken.
    Val() ondersteunt alleen een decimale punt, bij Double.Parse kan je makkelijk gelocaliseerde input ondersteunen. String functies als Mid() gebruiken een 1-based index terwijl alle "normale" .NET functies een 0-based index gebuiken.
    En dan zitten er ook nog vreemde bugs in. Replace("", "foo", "bar") geeft in VB.NET bijvoorbeeld Nothing terug in plaats van een lege string.
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
    pi_51663486
    Vraagje...

    Ik heb een loopje in mijn vb applic. echter wil ik per loop de resultaten laten zien in mijn form.

    Nu doe ik form1.status_box.text = "Status"

    Echter zie ik pas na het doorlopen van deze loopje de status van de laatste item op deze plaats komen.

    What am i doingk wrong?
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
    pi_51664548
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
    pi_51666189
    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?

    [ Bericht 71% gewijzigd door Chandler op 20-07-2007 17:32:27 ]
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
    pi_51668350
    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?
    VB.net?

    Meer info ?
    Lambo of Rekt
    pi_51668777
    Waar doel je op EggsTC?

    Ik zal even iets uitgebreidere info geven.

    Het bestand is opgezet als een UNIX tekst bestand, echter moet ik natuurlijk met VisualBASIC voor line input een Windows Tekst bestand hebben. Ik heb geprobeerd via wordpad en notepad++ alles om te zetten naar een tekst bestand met windows encoding. Echter is alles mislukt.. en deze progies crashen..

    Nu zoek ik naar een oplossing

    VB.net gaf geen bevredigend antwoord

    http://www.thefreecountry.com/tofrodos/ is een handig programmatje om UNIX documenten te converteren naar Windows documenten en visa versa

    [ Bericht 31% gewijzigd door Chandler op 20-07-2007 18:55:17 ]
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
    pi_51672802
    Met een TextReader zou het moeten kunnen. ReadLine geeft 1 regel terug:
    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.
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
    pi_51675008
    quote:
    Op vrijdag 20 juli 2007 20:12 schreef SuperRembo het volgende:
    Met een TextReader zou het moeten kunnen. ReadLine geeft 1 regel terug:
    Ik hoop dat het werkt, want die converter kan geen UTF-8 tekens converteren erg onhandig... output van een 60MB file is gewoon dom weg 5.nogwat MB (na draaien in mijn progie, end door eof!)

    This page is specific to .NET Framework 3.0

    [ Bericht 10% gewijzigd door Chandler op 20-07-2007 21:36:44 ]
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
    pi_51687912
    quote:
    Op vrijdag 20 juli 2007 21:26 schreef Chandler het volgende:
    This page is specific to .NET Framework 3.0
    De TextReader class bestaat al sinds .NET 1.0. Het lijkt me niet dat er heel veel in veranderd is.
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
    pi_51688295
    Ow :{

    Ik was zelf even aan het knutselen maar doe iets erg verkeerd :P

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
        Open Dir1.Path & "" & File1.FileName For Binary As #freeNum
        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


    Alleen is het probleem dat txt altijd leeg blijft :{.

    Of moet ik zo ie zo de positie van het in te lezen bitje specificeren? zo gaat ie toch telkens ook 1 positie naar boven?
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
    pi_51689245
    Kolere wat een ranzige code Ben je nou toch weer in VB6 aan 't knoeien?

    In VB.NET kan het zo:
    1
    2
    3
    4
    5
    6
    7
    8
    Dim line As String
    Dim reader As New System.IO.StreamReader("C:/foo.txt")

    While Not reader.EndOfStream
       line = reader.ReadLine()
       '...
    End While
    reader.Close()
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
    pi_51689468
    Ik heb helaas geen VBnet... (jawel, maar weet niet waar, moet toch ook gewoon in vb6 kunnen, zoals bovenstaand maar dan anders...)

    Ennuh opzich is mijn code toch wel juist?
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
    pi_51690135
    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...)
    Visual Studio Express is gratis.
    quote:
    Ennuh opzich is mijn code toch wel juist?
    Geen idee, ik ben niet zo thuis in die VB6 file handling.
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
    pi_51720023
    Hmm... Lijkt mij toch wel aardig goed te zijn

    Ik heb mijn code een beetje aangepast en heb dit nu in een loop staan.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
            Do
                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)


    echter wil de loop niet stoppen als readByte (10 of 13) is Wat doe ik fout?

    [ Bericht 88% gewijzigd door Chandler op 22-07-2007 17:26:36 ]
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
    pi_51725614
    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
    Vreemt. Wat je zou kunnen proberen is in plaats van een Do loop een For loop gebruiken. Dan zou het worden:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
            For I = 1 to fileSize
                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
      zondag 22 juli 2007 @ 18:59:57 #115
    3677 SuperRembo
    Sinds 1998
    pi_51726013
    In .NET gaat het veel makkelijker, maar als je dan per see in VB6 wil klooien, gebruik dan gewoon een FileSystemObject.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Const forReading = 1, forWriting = 2
    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


    (Wel even een referentie aan je project toevoegen naar Microsoft.Scripting)
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
    pi_51739741
    Ik weet al wat ik fout deed

    1Loop While (readByte <> 13 Or pointCnt < fileSize)


    zegt readbyte is geen 13 OF pointCnt is kleiner dan fileSize, maar het moest eingelijk zijn

    readByte is geen 13 EN pointCnt is kleiner dan fileSize

    oftewel
    1Loop While (readByte <> 13 And pointCnt < fileSize)
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
    pi_58593479
    Ben bezig met een kleine functie om een getal van 6 aaneensluitende nummers uit een string te halen, maar t wil niet echt lukken:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Function ExtNum(ByVal strValue As String) As Integer
        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


    Deze haalt alle getallen uit een lap tekst , maar werkt niet goed hij returned namelijk steeds nul , heeft iemand een oplossing? -O-
      FOK!fotograaf zaterdag 10 mei 2008 @ 18:00:03 #118
    63 Marc H
    - Satan's Livecoach -
    pi_58596841
    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?
    Les 1: nooit "on error resume next" gebruiken tijdens debuggen!

    als je dat doet zie je dat je een overflow error krijgt in "ExtNum = CInt(strNum)"
    op een 6 cijferig getal een integer conversie doen gaat ook niet werken. omdat een integer maximaal "32,767" kan bevatten. dus zal je het getal moeten converteren naar een double, in plaats van een integer. En dat moet je natuurlijk ook aanpassen in je function.

    dus dan krijg je deze code:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Function ExtNum(ByVal strValue As String) As Double
        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


    En nog iets, als je al zonodig on error resume next wil gebruiken in een stuk code, zet dan de error trapping weer aan voor je de fnction verlaat.

    [ Bericht 3% gewijzigd door Marc H op 10-05-2008 18:05:20 (') ]
    You don't have to be the Dalai Lama to tell people that life's about change.
    pi_62196374
    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?
    pi_62196742
    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
      dinsdag 7 oktober 2008 @ 11:08:20 #121
    15929 DiRadical
    Everything's ruined
    pi_62196749
    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?
    De truuk is net dat je die code zelf moeten maken.

    Je zou de namen in de eerste kolom kunnen zetten en de drankjes in de eerste regel (vanaf kolom 2)
    In het gebied daaronder kun je de aantallen in vullen. In het kruispunt van Naam en Drankje staat het aantal.

    Wil je ook nog berekenen wat de totaal prijs is?
    Ik zou dan de drankjes en prijzen in een apart werkblad stoppen en een formule maken die berekening deze gegevens ophaalt. Zo kun je zelfs je prijzen veranderen zonder de formules aan te passen.
    Dat kan met een VLOOKUP (of was het nu een HLOOKUP, in ieder geval 1 van die 2)
    Hiervoor is geen VB code nodig, alleen maar Excel formules.
    Happyness is nature's way of informing human resources that you're overpaid
    -Catbert: Evil director of HR
    pi_62196958
    quote:
    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
    Ik kwam er ook achter .

    Op dit moment hebben wij een rekening als volgt:

    Lijst met namen - Aantal Dit, Dat, etc. - bedrag

    Het aantal bier wordt bijvoorbeeld steeds veranderd in 2, 3,4,5. Dit kan dus nog al eens misgaan. Het is misschien handiger om een button te hebben en daarnaast een aantal. Dus als je er op klikt je een extra opschrijft.

    Ik dacht dat je daar ff snel een programmaatje van kan maken in VB. Valt tegen dus
    pi_62197035
    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.
      dinsdag 7 oktober 2008 @ 11:36:44 #124
    15929 DiRadical
    Everything's ruined
    pi_62197521
    Je zou Excel kunnen misbruiken als database. Ieder werkblad is dan een tabel.
    Je bent niet de eerste die dat zou doen
    Maar dan zou ik order regels aanmaken op een apart werkblad
    naam- drankje- aantal- prijs perstuk

    En aan het eind van de avond alles optellen om een rekening te maken.

    Je zou ook gewoon een printje kunnen maken van een tabel met namen en drankjes.
    Streepjes zetten in de cellen en aan het eind alles optellen.
    Dat is de KISS versie
    Happyness is nature's way of informing human resources that you're overpaid
    -Catbert: Evil director of HR
    pi_62214212
    quote:
    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.
    vb kan je redelijk simpel met mysql laten comminiceren
    pi_62222183
    quote:
    Op dinsdag 7 oktober 2008 21:29 schreef mschol het volgende:

    [..]

    vb kan je redelijk simpel met mysql laten comminiceren
    Akkoord maar niet voor een dranklijst en al helemaal niet als je nog nooit VB gebruikt hebt
      woensdag 8 oktober 2008 @ 09:04:16 #127
    15929 DiRadical
    Everything's ruined
    pi_62223789
    quote:
    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.
    Happyness is nature's way of informing human resources that you're overpaid
    -Catbert: Evil director of HR
      FOK!fotograaf woensdag 8 oktober 2008 @ 13:37:59 #128
    63 Marc H
    - Satan's Livecoach -
    pi_62230756
    Ik zou dan toch fijn voor vb gaan, en zorgen dat elke wijziging meteen naar disk weggeschreven wordt. Stel je hebt een feestavondje, en een uur voor sluiten crashed je pc. kan je dan nog achterhalen wat iedereen besteld heeft?
    You don't have to be the Dalai Lama to tell people that life's about change.
    pi_81647459
    Aangezien ik toch weer eens aan de slag moest en als noob weer eens iets niet snap, zelfs niet na veel zoeken vraag ik het maar hier :)

    Ik heb de volgende code, die ik wil gebruiken om te controleren of een directory bestaat

    MsgBox FolderExists(strStartPath)

    in mijn geval [b]C:\Documenten and Settings\Gebruiker\Mijn documenten[/b en die bestaat, echter geeft de MsgBox een false aan terwijl deze true moet zijn?

    code?

    1
    2
        Dim oFile As New Scripting.FileSystemObject
        FileExists = oFile.FolderExists(sFullPath)


    anyone?
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
      donderdag 20 mei 2010 @ 13:46:50 #130
    15929 DiRadical
    Everything's ruined
    pi_81671526
    Code werkt.

    Is sFullPath wel gevuld?
    Wordt wel goed gekoppeld aan de msgbox?
    Happyness is nature's way of informing human resources that you're overpaid
    -Catbert: Evil director of HR
    pi_81672229
    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
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
      donderdag 20 mei 2010 @ 14:15:12 #132
    15929 DiRadical
    Everything's ruined
    pi_81672859
    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
    Je gebruikt geen Option Explicit (aan het begin van je code staat in ieder bestand).

    Foei
    Dat Microsoft het standaard niet aan zet in VB is overigens nog erger.
    Happyness is nature's way of informing human resources that you're overpaid
    -Catbert: Evil director of HR
    pi_81673341
    Geplaatst!!

    Ik ben bezig met een backup programma! zie aanleiding: Backup meerdere folders, simpel batch/programma?

    preview:


    Mijn code:
    1


    Heb je eventueel tips? vind vooral het laden van mijn INI bestand nogal omslachtig

    [ Bericht 96% gewijzigd door Chandler op 21-05-2010 14:58:53 ]
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
    pi_81673389
    -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!

    [ Bericht 45% gewijzigd door Chandler op 21-05-2010 14:59:49 ]
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
      vrijdag 21 mei 2010 @ 15:13:16 #135
    15929 DiRadical
    Everything's ruined
    pi_81721775
    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!

    zoiets:

    Dim obj As New Scripting.FileSystemObject
    Dim ofld As Folder
    set ofld = obj.GetFolder("c:\temp")
    ofld.SubFolders.Add ("test")
    Happyness is nature's way of informing human resources that you're overpaid
    -Catbert: Evil director of HR
    pi_81723721
    Klopt maar het ging om een diepere structuur

    Dat is inmiddels gelukt en heb nu een werkend projectje!

    Hier te downloaden in source van visualbasic 6

    Lukt al aardig dus

    Opties
    - Drive noemer mee nemen (gemakkelijk als je vaak dezelfde directories in je roots hebt)
    - Ook subdirectories doorlezen?
    - Extensies overslaan
    - Overschrijven? alleen als deze veranderd / nieuw is.
    - 0 bestanden/directories ook kopieren (moet nog inbouwen, deels zeg maar... nu wordt een directory pas aangemaakt als er een bestand naartoe geschreven wordt.)
    - Doel drive en path aangeven
    - Meerdere bronnen toevoegen aan overzicht
    - Meerdere bron lokaties verwijderen in 2 klikken (selecteren, verwijderen)

    Statistieken
    - Aantal MB's
    - Aantal gekopieerde Mb's
    - Aantal bestanden
    - Aantal gekopieerde bestanden
    - Aantal geskipte bestanden
    - Aantal fout bestanden (Geskipt) (bv in gebruik, etc)
    - Actie

    Alleen werk ik nu nog met de copy van filesystemobject en daar wil ik eingelijk iets anders voor, eventueel met een voortgangs balk oid? lol

    Maar goed, ik hoor graag comments VB was al weer zo'n 3 jaar geleden.....

    [ps] Hier draai ik het nu met zo'n 200K aan bestanden, duurt een beetje erg lang.. maar minder lang dan verwacht.......
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
    pi_81727729
    quote:
    Op vrijdag 21 mei 2010 15:53 schreef Chandler het volgende:

    Hier te downloaden in source van visualbasic 6
    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/

    Deze versies zijn een bijzondere verbetering t.o.v. vb6, onder meer omdat er met .net meer mogelijk is zonder aanroep van extra DLL's maar rechtstreeks vanuit .net. Kan me voorstellen dat je voor dit project niet graag de omschakeling wilt maken (hoewel projecten vaak 1-op-1 geconverteerd kunnen worden), maar het loont de moeite om hier eens naar te kijken voor andere applicaties

    Ik merk zelf dat ik sneller werk met 2005 - en nu met 2008 Succes!
    pi_81728013
    Ja VB6 hoe 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?
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
    pi_81741375
    quote:
    Op vrijdag 21 mei 2010 17:23 schreef Chandler het volgende:
    Ja VB6 hoe 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?
    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.

    Ook bijvoorbeeld de functie je je gemaakt hebt om de extensie van een bestand te controleren, is in vb.net aanwezig:
    1
    2
    Dim bestandsinformatie As New System.IO.FileInfo("c:\test.txt")
    MsgBox(bestandsinformatie.Extension)


    In .net is er ook een nieuwe control 'backgroundworker', waarmee je op de achtergrond bepaalde taken kunt uitvoeren (zoals het kopiëren, waardoor het programma niet hangt tenzij je application.DoEvents() gebruikt.

    Onder VB6 zou je in elk geval de volgende dingen kunnen aanpassen:
  • Filesystemobject één maal declareren bovenaan de code met een 'private' (i.p.v. dim of Set)
  • Verminder het aantal for-lussen dat je gebruikt, controleer of ze écht noodakelijk zijn. De for-lus die je gebruikt om de extensie te controleren kan je bijvoorbeeld vervangen door een zoek-in-array-functie ("staat ext in verboden lijst?"). for-lussen kunnen namelijk nogal tijdrovend blijken
  • De if-statements zitten soms wat onhandig in elkaar (4 of 5 in elkaar). De meeste kan je ook met handig gebruik van 'andalso', 'orelse', AND en OR operators samenvoegen.

    Verder ziet de code er vrij oké uit Antiek, maar oké
  • pi_81763245
    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..
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
    pi_81784686
    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?
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
    pi_81784794
    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?
    "vol" lopen van het geheugen?
    pi_81785240
    hoe bedoel je met vol? het schommelt nu opeens tussen de 20-50mb? bij 44k aan gelezen bestanden
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
    pi_81804243
    Hier een filmpje van het geheugen gebruik? snap niet waar het hem in zit..



    Anyone?
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
    pi_81806330
    ik bedoel: misschien zijn er variablen oid die blijven hangen in het geheugen waardoor hij trager wordt omdat hij meer moet onthouden oid?
    pi_81807534
    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
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
    pi_81843929
    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..
    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:
    1IF A=B AND C=D then

    Wordt de conditie C=D altijd gecontroleerd, ook als A!=B, terwijl als je:
    1IF A=B ANDALSO C=D then

    gebruikt, C=D alleen wordt gecontroleerd als A=B. Dat scheelt op het aantal statements en het aantal bestanden wat je doorloopt aardig wat vergelijkingen!
    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
    Grappig dat dat zo erg scheelt :)
    pi_81857917
    Grappig is idd dat het geheugen dan zo sprint.. waarom? geen idee maar goed.

    Zal andalso ook eens proberen
    The people who lost my respect will never get a capital letter for their name again.
    Like trump...
    pi_90804999
    Ik ben met een studieopdracht bezig. Een simpel programmaatje om een soort orderlijst te maken en daarnaast moet je nog een programma maken om die orderlijst te veranderen. Ik moet dus 2 .exe's maken (kan ms ook anders maar het voorbeeld heeft er ook 2).

    Min of meer de enige hint die gegeven werd voor het samen gebruiken van die 2 is dat VB (Express in mijn geval) een Process component in de toolbox heeft. Ik heb echter geen idee hoe en wat verder, als ik zo'n ding in mijn eerste programma toevoeg.

    In prog 1 zit een knop Edit orderlist die prog 2 laat opstarten. Ik heb echt geen idee wat voor code ik ongeveer zou moeten gebruiken onder die knop om dat voor elkaar te krijgen. En als ik wel code heb, wat is dan het nut van dat component in mijn project??

    Verder is dus het idee dat gegevens uit prog 2 weer verwerkt worden in prog 1. Ook geen idee hoe dat zou moeten (variabelen binnen meerdere forms snap ik wel), of gaat dat min of meer 'automatisch' door juist gebruik van dit onderdeel?

    Heb hier al wat zitten kijken http://msdn.microsoft.com(...)nostics.process.aspx maar daar word ik niet heel veel wijzer van vooralsnog.
    pi_90806225
    Je kan met een winAPI die box uitlezen. ik snap ook niet helemaal wat je bedoelt tho.
    Lambo of Rekt
      maandag 3 januari 2011 @ 19:57:24 #151
    85514 ralfie
    !Yvan eht nioj
    pi_90807434
    quote:
    1s.gif Op maandag 3 januari 2011 19:06 schreef Modus het volgende:
    Ik ben met een studieopdracht bezig. Een simpel programmaatje om een soort orderlijst te maken en daarnaast moet je nog een programma maken om die orderlijst te veranderen. Ik moet dus 2 .exe's maken (kan ms ook anders maar het voorbeeld heeft er ook 2).

    Min of meer de enige hint die gegeven werd voor het samen gebruiken van die 2 is dat VB (Express in mijn geval) een Process component in de toolbox heeft. Ik heb echter geen idee hoe en wat verder, als ik zo'n ding in mijn eerste programma toevoeg.

    In prog 1 zit een knop Edit orderlist die prog 2 laat opstarten. Ik heb echt geen idee wat voor code ik ongeveer zou moeten gebruiken onder die knop om dat voor elkaar te krijgen. En als ik wel code heb, wat is dan het nut van dat component in mijn project??

    Verder is dus het idee dat gegevens uit prog 2 weer verwerkt worden in prog 1. Ook geen idee hoe dat zou moeten (variabelen binnen meerdere forms snap ik wel), of gaat dat min of meer 'automatisch' door juist gebruik van dit onderdeel?

    Heb hier al wat zitten kijken http://msdn.microsoft.com(...)nostics.process.aspx maar daar word ik niet heel veel wijzer van vooralsnog.
    dat lijkt me vb.net en dat is iets waar de meeste mensen in dit topic allergisch voor zijn.
    En gelijk hebben ze

    met een process kun je (zo te zien) vrij makkelijk standardinput en standardoutput redirecten. Daarmee kun je nogal wat data snel over en weer hevelen. Dat zou mijn eerste keus zijn denk ik.

    Anders, tjah, moeten het echt twee verschillende programma's zijn? Shared memory e.d. lijkt me tamelijk geavanceerd voor iemand die je durft in vb.net te laten leren. Maar je zult wel moeten als het het netjes wilt doen. Anders kun je het nog met Send/PostMessage, winapi's en het vieze 'een bestandje waarin beide programma's lezen en schrijven'.
    pi_90808230
    Ja je moet gewoon het voorbeeldprogramma functioneel namaken, de enige hint die ik voor dit gedeelte kreeg was die Process component. Ms denk ik wel veel te moeilijk en is het een kwestie van prog 2 laten opstarten vanuit prog 1 (met een beetje kloten lukt me dat nog wel denk ik) maar wat is dan nog de bedoeling van dat component in je form inbouwen??

    Ms voor het plaatje, prog 2 leest een text bestand in dat eerst door prog 1 gevuld is. Dat txtbestand kun je dan wijzigen, na afsluiten van prog 2 worden de nieuwe gegevens weer in prog 1 verwerkt.

    Deze opdracht is echt bizar veel moeilijker dan alle voorgaande en je krijgt alleen maar een paar trefwoorden als hulp zeg maar.
      maandag 3 januari 2011 @ 21:20:20 #153
    192481 Core2
    Happiness is the road
    pi_90812166
    Misschien zoiets?

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            If Environment.GetCommandLineArgs.Contains("edit") Then
                Dim orders As New List(Of String)
                Dim order As String = Nothing

                Do
                    order = Console.ReadLine
                    If order <> String.Empty Then orders.Add(order)
                Loop While Not order = String.Empty

                MessageBox.Show(orders.Count)
            Else
                Dim orderLijst As String() = {"cola", "boter", "kaas", String.Empty}

                Dim si As New System.Diagnostics.ProcessStartInfo With {
                    .Arguments = "edit",
                    .FileName = Application.ExecutablePath,
                    .RedirectStandardInput = True,
                    .UseShellExecute = False
                }

                Dim process = System.Diagnostics.Process.Start(si)

                process.WaitForInputIdle()

                For Each order In orderLijst
                    process.StandardInput.WriteLine(order)
                Next

                process.StandardInput.Flush()
            End If
        End Sub
      maandag 3 januari 2011 @ 21:28:13 #154
    192481 Core2
    Happiness is the road
    pi_90812632
    Het is dan ook niet zo moeilijk meer om van B naar A te gaan lijkt me. Je kunt dus communiceren via stdin/stdout. Je hebt nog wel wat andere mogelijkheden (named pipes, memory mapped files, tcp/ip, etc) waar je denk ik nog wat te weinig ervaring voor hebt (met alle respect :) ).
    pi_90813853
    Het zal wel een beetje in die richting gaan zoals jouw code, maar ik kan me gewoon niet voorstellen dat dat de bedoeling is... 1 trefwoord 'Process' en dan moet je bovenstaande er zelf maar bij uitzoeken...
    pi_90826470
    Ik denk dat ik veel te moeilijk dacht in eerste instantie. Volgens mij is het de bedoeling dat ik vanuit prog 1 prog 2 laat opstarten, die laatste gegevens laat verwerken in het textbestandje, prog 2 weer sluiten en vervolgens prog 1 de vernieuwde gegevens weer laten uitlezen uit dat textbestandje. Op die manier is er dus geen sprake van rechtstreeks overdracht tussen 2 exe's.
      dinsdag 4 januari 2011 @ 14:39:39 #157
    58834 Catbert
    The evil HR Director.
    pi_90836160
    quote:
    1s.gif Op maandag 3 januari 2011 21:28 schreef Core2 het volgende:
    Het is dan ook niet zo moeilijk meer om van B naar A te gaan lijkt me. Je kunt dus communiceren via stdin/stdout. Je hebt nog wel wat andere mogelijkheden (named pipes, memory mapped files, tcp/ip, etc) waar je denk ik nog wat te weinig ervaring voor hebt (met alle respect :) ).
    Volgens mij is het gewoon de bedoeling dat ze die data in een textfile of DB opslaan. Snap niet dat mensen hier rare oplossingen als communicerende applicaties gaan bedenken. In VB wat in een access DB frutten is triviaal.
    "[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
      dinsdag 4 januari 2011 @ 21:21:02 #158
    192481 Core2
    Happiness is the road
    pi_90855133
    quote:
    1s.gif Op dinsdag 4 januari 2011 14:39 schreef Catbert het volgende:

    [..]

    Volgens mij is het gewoon de bedoeling dat ze die data in een textfile of DB opslaan. Snap niet dat mensen hier rare oplossingen als communicerende applicaties gaan bedenken. In VB wat in een access DB frutten is triviaal.
    Je kunt die opdracht op meerdere manieren interpreteren, ik heb geen idee wat de context is. Er wordt gesproken over het Process object, een orderlijst en twee applicaties die iets met die orderlijst moeten doen. Niet zo gek dat je dan bij communicerende processen uitkomt, maar zou me niks verbazen als ze inderdaad een database oplossing bedoelen.
    pi_90862416
    Even voor de duidelijkheid: het voorbeeldprogramma is wel zo duidelijk dat er geen twijfel is over het moeten gebruiken van een textfile. App 1 is een soort orderprogramma en schrijft op de achtergrond gegevens weg in dat text bestand en wil je wat wijzigen daarin dan moet dat via app 2.

    Ik zat bij mijn eerste post verkeerd te denken, nl. ongeveer dit:

    -app2 starten en daarmee
    -wijzigingen in text file opslaan
    -app 2 weer sluiten

    ik was in de veronderstelling dat die gewijzigde gegevens alleen naar app1 'overgeheveld' zouden kunnen worden door ze in arrays ofzo te verwerken, en ik zag gewoon niet (als dat al kan) hoe dat zou moeten, dat overdragen tussen 2 exes. Dat zou ook nog heel veel ingewikkelder zijn dan wat ik tot nu toe in de lesstof gezien heb, dus kon me al nauwelijks voorstellen dat dat de bedoeling zou zijn.

    Ik moet het nu nog uitwerken maar wat ik volgens mij moet doen is:

    -app 2 opstarten
    -wijzigingen opslaan
    -app 2 weer afsluiten en in diezelfde event zorgen dat app 1 meteen daarna de nieuwe gegevens uit dat textbestand weer inleest en verwerkt in o.a. het prijzengedeelte.

    Verder werd dus bij de tips gesproken over de Process class, met een miniem stukje code als voorbeeld, en daarna werd gerefereerd naar het aanwezig zijn van een Process component in VB die je gewoon in je form kan slepen en wat blijkbaar 1 en ander zou vereenvoudigen. Hoe ik die component dan zou moeten gebruiken is me nog niet helemáál duidelijk, met alleen die code kom ik er eerder uit denk ik.

    Hoop dat zo een beetje duidelijk is wat de bedoeling van de opdracht is en daarmee van mijn vraagstelling.
    pi_99643911
    Na vastlopen en ander geneuzel de studieopdracht maar weer opgepakt.
    Waar ik nog steeds mee zit is:

    Is mijn denkwijze überhaupt wel goed voordat we ook maar aan code gaan denken (zie ook mijn post hierboven). Is het mogelijk om in App2 het 1 en ander te doen (terwijl App1 dan op de achtergrond 'wacht'), dat vervolgens af te sluiten waarna App1 weer 'actief' wordt maar op het moment van actief worden moet er in App1 ook het 1 en ander gebeuren (gegevens bijgewerkt, een soort 'refresh' zeg maar). Kan ik überhaupt elementen in App1 rechtstreeks aanroepen vanuit App2? Zo nee, dan moet er dus iets gebeuren zodra App2 klaar is. Maar hoe laat ik App1 weten dat App2 klaar is??

    Kan het niet duidelijker verwoorden... hoop dat iemand tips heeft. Heb de docent ook nog maar eens gemaild maar daar krijg ik altijd als het meezit 3 woorden antwoord van.
      woensdag 20 juli 2011 @ 15:08:18 #161
    15929 DiRadical
    Everything's ruined
    pi_99706163
    Eerste hit in Google
    kom uit bij About.com

    Je kunt vanuit App1 een nieuw proces met applicatie App2 starten.
    Als je een textbestand hebt opgeslagen in App1 kun je die meegeven als parameter en deze parameter weer uitlezen in App2.
    In App2 kun je je bewerking uitvoeren en opslaan (in hetzelfde tekst bestand)
    Daarna kun je App2 sluiten.

    Door myProcess.WaitForExit() toe te voegen aan de code nadat je myProcess gestart bent wordt het uitvoeren van de rest van de code van App1 gestopt.
    Daarna kun je in App1 het bestand weer openen en de wijzigingen inlezen.
    Happyness is nature's way of informing human resources that you're overpaid
    -Catbert: Evil director of HR
    pi_100208939
    Thanks, had je reply nog niet gezien. Ik heb dat stukje inmiddels ook werkend kunnen krijgen. Ben inmiddels weer iets verder gevorderd.

    Nu wat anders, een wat specifieker probleem, dus ms makkelijker om uit te zoeken.
    Na het sluiten van App2 laat ik het txt-bestand opnieuw openen, dat moet regel voor regel uitgelezen worden, elke regel moet opgesplitst naar een array en het eerste item van deze array moet als zoekterm gebruikt worden om in de Listbox van App1 het bijbehorende item terug te vinden.

    Leek allemaal goed te gaan maar het juiste Listbox.Item wordt niet goed bijgewerkt. Nader onderzoek leert dat die array vullen niet goed gaat, maar ik zie niet wat ik daar fout aan doe. Heb ongeveerd e volgende code:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Dim File_Name As String = "D:\vb08sbs\voorbeelden\899J6\Inzending\899Q6\orders.txt"
                If System.IO.File.Exists(File_Name) = True Then
                    Dim SplitLineArr() As String, NewTextLine As String
                    Dim objReader As New System.IO.StreamReader(File_Name)
                    Do While objReader.Peek() <> -1
                        NewTextLine = objReader.ReadLine()
                        SplitLineArr = Split(objReader.ReadLine(), ";")
                        Label5.Text = NewTextLine
                        Label6.Text = SplitLineArr(0)

                        ' Dim index As Integer = OrderListBox.FindString(SplitLineArr(0))
                        ' If index <> -1 Then
                        ' OrderListBox.Items(index) = NewTextLine
                        ' ArticlePrice = Convert.ToDecimal(Trim(SplitLineArr(2)), New System.Globalization.CultureInfo("en-US"))
                        ' TotalPrice = TotalPrice + (Trim(SplitLineArr(3)) * ArticlePrice)
                        ' End If
                    Loop
                End If
    Er staat wat overbodige code in maar die gebruik ik gedeeltelijk om waardes uit te lezen, zoals de labels5 en 6.
    Als er maar 1 regel in het textbestand staat, verschijnt in label5 wel text, maar in 6 niet. Staan er meer regels in het textbestand dan blijven zowel label5 als 6 leeg.

    Zit dat hem wellicht in hoe het textbestand uitgelezen wordt? Is er een andere manier om regel voor regel uit te lezen?
    pi_100212540
    quote:
    0s.gif Op maandag 1 augustus 2011 21:26 schreef Modus het volgende:
    Thanks, had je reply nog niet gezien. Ik heb dat stukje inmiddels ook werkend kunnen krijgen. Ben inmiddels weer iets verder gevorderd.

    Nu wat anders, een wat specifieker probleem, dus ms makkelijker om uit te zoeken.
    Na het sluiten van App2 laat ik het txt-bestand opnieuw openen, dat moet regel voor regel uitgelezen worden, elke regel moet opgesplitst naar een array en het eerste item van deze array moet als zoekterm gebruikt worden om in de Listbox van App1 het bijbehorende item terug te vinden.

    Leek allemaal goed te gaan maar het juiste Listbox.Item wordt niet goed bijgewerkt. Nader onderzoek leert dat die array vullen niet goed gaat, maar ik zie niet wat ik daar fout aan doe. Heb ongeveerd e volgende code:
    [ code verwijderd ]

    Je leest nu door deze code steeds twee regels uit het bestand.
    1
    2
    NewTextLine = objReader.ReadLine()
    SplitLineArr = Split(objReader.ReadLine(), ";")

    Van die tweede regel zou je dus eigenlijk dit moeten maken:
    1SplitLineArr = Split(NewTextLine , ";")
    pi_100212927
    Is dat zo? Alles wat binnen de Do While-Loop code valt gaat toch over dezelfde regel?

    Heb de code aangepast zoals je aangeeft en dan gebeurt er nog steeds niks, label5 en 6 blijven leeg.
    pi_100213586
    quote:
    0s.gif Op maandag 1 augustus 2011 22:46 schreef Modus het volgende:
    Is dat zo? Alles wat binnen de Do While-Loop code valt gaat toch over dezelfde regel?
    Het enige wat deze Do zegt is dat er code moet worden uitgevoerd zolang er nog tekst te vinden is in het bestand. Met .Peek() kijk je namelijk naar de volgende regel, hij wordt dan nog niet gelezen, dat gebeurd pas met .ReadLine() die je twee keer aanroept :)
    quote:
    Heb de code aangepast zoals je aangeeft en dan gebeurt er nog steeds niks, label5 en 6 blijven leeg.
    Ah, maar dan gebeurd er dus wel wat anders dan net! :P Dat is iets anders dan "nog steeds niets" ;)
    Dat nu ook label5 leeg blijft kan worden veroorzaakt doordat het tekstbestand wat je inleest een witregel aan het einde heeft o.i.d., heb je daar al naar gekeken?

    Kan je eenvoudig controleren in notepad of door een breakpoint aan het begin van je code neer te zetten en dan stap-voor-stap elke regel te evalueren en in je variabelen te kijken.
      maandag 1 augustus 2011 @ 23:03:38 #166
    44920 TallMan
    Permanent brain failure
    pi_100213867
    Probeer inderdaad met breakpoints door je code te stappen en kijk wat er specifiek misgaat, welke variabele wordt niet gevuld zoals jij dacht.

    Dat je niets ziet gebeuren kan heel goed aan een witregel liggen aan het einde van de textfile zoals al was genoemd. Je labels zullen visueel niet worden geupdate zolang je nog in je Do lus zit (behalve als je dat zelf afdwingt) dus dat je daaraan niets ziet is by design.

    Klein puntje is dat een StreamReader een EndOfStream property heeft. Die kun je gebruiken ipv die Peek <> -1

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
                    Do While not objReader.EndOfStream
                        NewTextLine = objReader.ReadLine()
                        SplitLineArr = Split(NewTextLine, ";")
                        Label5.Text = NewTextLine
                        Label6.Text = SplitLineArr(0)

                        ' Dim index As Integer = OrderListBox.FindString(SplitLineArr(0))
                        ' If index <> -1 Then
                        ' OrderListBox.Items(index) = NewTextLine
                        ' ArticlePrice = Convert.ToDecimal(Trim(SplitLineArr(2)), New System.Globalization.CultureInfo("en-US"))
                        ' TotalPrice = TotalPrice + (Trim(SplitLineArr(3)) * ArticlePrice)
                        ' End If
                    Loop
    geheelonthouder met geheugenverlies
    Mensen die zeggen dat domme vragen niet bestaan stellen ze zelf.
    pi_100214138
    Bij het creëren en vullen van dat tekstbestand wordt idd elke keer een enter aan het einde van een weggeschreven regel toegevoegd, heb het idee dat het daar iets mee te maken heeft ja. Als ik het open en naar het einde van het bestand ga, kom ik uit onder de tekstregels, aan het begin van een nieuwe regel.

    Is er een manier om dat tijdens het wegschrijven al te voorkomen, of moet je iets doen waardoor je na de laatste regel de nieuwe lege regel weer delete o.i.d.? Die enter moet natuurlijk wel gebruikt worden om telkens regels onder elkaar in het textbestand te kunnen krijgen...?
    pi_100215234
    quote:
    0s.gif Op maandag 1 augustus 2011 23:10 schreef Modus het volgende:
    Bij het creëren en vullen van dat tekstbestand wordt idd elke keer een enter aan het einde van een weggeschreven regel toegevoegd, heb het idee dat het daar iets mee te maken heeft ja. Als ik het open en naar het einde van het bestand ga, kom ik uit onder de tekstregels, aan het begin van een nieuwe regel.
    Dan is het logisch dat jouw labels leegblijven :) Die labels bevatten namelijk alleen de inhoud van de laatste regel (die wordt immers als laatste ingelezen in de DO-loop).
    quote:
    Is er een manier om dat tijdens het wegschrijven al te voorkomen, of moet je iets doen waardoor je na de laatste regel de nieuwe lege regel weer delete o.i.d.? Die enter moet natuurlijk wel gebruikt worden om telkens regels onder elkaar in het textbestand te kunnen krijgen...?
    Tijdens het wegschrijven (ik neem aan dat dat met een DO of FOR-loop gaat) zou je kunnen kijken of je met de laatste regel bezig bent en als dat het geval is, voeg je geen witregel toe.

    Andersom kan ook: Steeds éérst een vbNewLine toevoegen en dan pas de gewenste regel. Met een uitzondering bij de allereerste regel.
      dinsdag 2 augustus 2011 @ 09:54:23 #169
    44920 TallMan
    Permanent brain failure
    pi_100224466
    Of bij het uitlezen van het bestand kijken of je een lege regel hebt uitgelezen en die niet processen
    geheelonthouder met geheugenverlies
    Mensen die zeggen dat domme vragen niet bestaan stellen ze zelf.
    pi_100224722
    quote:
    3s.gif Op dinsdag 2 augustus 2011 09:54 schreef TallMan het volgende:
    Of bij het uitlezen van het bestand kijken of je een lege regel hebt uitgelezen en die niet processen
    Dat zal denk ik de makkelijkste optie zijn, zal vanavond eens kijken thuis. Thanks.
    pi_100288886
    Ha ik geloof dat ik het zowaar werkend heb. Dus elke regel uit het textbestand uitlezen en de bijbehorende regel in de Listbox vervangen. Thanks voor de hulp. ^O^.

    Nu alleen nog even iets scharrelen zodat de totaalprijs op de juiste manier opnieuw wordt uitgerekend, maar daar kom ik wel uit.
    abonnement Unibet Coolblue Bitvavo
    Forum Opties
    Forumhop:
    Hop naar:
    (afkorting, bv 'KLB')