abonnement Unibet Coolblue Bitvavo
  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
    abonnement Unibet Coolblue Bitvavo
    Forum Opties
    Forumhop:
    Hop naar:
    (afkorting, bv 'KLB')