Leren Programmeren met Liberty BASIC in 2009

Cursussen, tutorials
Plaats hier uw bijdrage.

Leren Programmeren met Liberty BASIC in 2009

Berichtdoor Gordon » za jul 25, 2009 4:53 pm

Hier is het beloofde plaatje.

Gordon
Bijlagen
hccplaatje.zip
(12.48 KiB) 299 keer gedownload
Avatar gebruiker
Gordon
Site Admin
 
Berichten: 684
Geregistreerd: zo mei 22, 2005 12:50 am

Re: Leren Programmeren met Liberty BASIC in 2009

Berichtdoor anthonio » wo jul 29, 2009 9:58 pm

Beste LB'ers,

Even vlug herhalen:

We gaan een administratieve toepassing maken. Een ledenadministratie programma.

Stel dat u een bestand ontvangt met gegevens van leden (leden.bgg). Dat zijn wat we de stamgegevens noemen. Nu wilt u een ander nieuw bestand maken waarin u enkele extra aanvullende gegevens van elk lid kunt plaatsen. Deze beide bestanden wilt u koppelen. Het eerder genoemde bestand (leden.bgg) met de stamgegevens en uw nieuw bestand dat we (aanvul.bgg) zullen gaan noemen. Daartoe opent u eerst het leden.bgg bestand en zoekt daarin het betrokken lidnummer van het lid waarvoor u aanvullende gegevens heeft op. Nu maakt u een nieuw apart bestand (aanvul.bgg) waarin u slechts de aanvullingen per lid zult plaatsten.

Code: Selecteer alles
   NOMAINWIN
    WindowWidth = 600 : WindowHeight = 550
    UpperLeftX = INT((DisplayWidth-WindowWidth)/2)
    UpperLeftY = INT((DisplayHeight-WindowHeight)/2)

Menu        #main1, "Bestand", "Open BGG bestand", [openen1], "Toon BGG lijst", [toonlijst1], "Exit", [quit1]
Menu        #main1, "Actie", "Records Aanvullen", [wijzigen1], "Records sorteren", [sorteren1]
Menu        #main1, "Extra", "Adressen uitprinten", [adressen1], "Mailing", [mailing1]
Menu        #main1, "Help", "Help onderwerpen", [help1], "Versie", [versie]

statictext  #main1.static1, "", 30, 100, 540, 430    'speciaal voor de help regels
graphicbox  #main1.g, 90, 10, 390, 85                'speciaal voor het BASIC logo


    loadbmp "hccBASIClogo","hccplaatje.bmp"
BackgroundColor$ = "green"
Open "Ledenadministratie hcc BASIC IG" for Window as #main1

    #main1 "trapclose [quit1]"
   #main1.g "down; drawbmp hccBASIClogo 0 0; flush"
    Wait

[quit1]
Close #main1
end
Dual boot: Ubuntu 8.04 - WIndows XP SP2 (via VMware) - Windows Vista 32bit - Toshiba L40 - Dual Core @ 1,76GHz - 1GB RAM - 120GB HDD - VDSL Connection
Avatar gebruiker
anthonio
 
Berichten: 281
Geregistreerd: zo mei 20, 2007 9:58 pm

Re: Leren Programmeren met Liberty BASIC in 2009

Berichtdoor anthonio » wo jul 29, 2009 10:04 pm

De eerste maal dat ik bovenstaande code uitvoerde kreeg ik een foutmelding ivm het plaatje.
Het plaatje moet u hernoemen naar "hccplaatje.bmp" OF in de code "hccplaatje2.bmp" schrijven.
Na het runnen zal u zien dat het logo niet goed wordt weergegeven.
Verander de volgende regel:
Code: Selecteer alles
graphicbox  #main1.g, 90, 10, 390, 85                'speciaal voor het BASIC logo

naar
Code: Selecteer alles
graphicbox  #main1.g, 90, 10, 336, 116                'speciaal voor het BASIC logo


Ik laat iedereen hier een nacht over nadenken en dan gaan we de komende dagen dit samen
stap voor stap uitwerken.

Groeten Anthonio
Dual boot: Ubuntu 8.04 - WIndows XP SP2 (via VMware) - Windows Vista 32bit - Toshiba L40 - Dual Core @ 1,76GHz - 1GB RAM - 120GB HDD - VDSL Connection
Avatar gebruiker
anthonio
 
Berichten: 281
Geregistreerd: zo mei 20, 2007 9:58 pm

Re: Leren Programmeren met Liberty BASIC in 2009

Berichtdoor anthonio » wo jul 29, 2009 10:10 pm

Ik heb gemerkt dat in vista een kader rond de graphicbox getekend word.
Om dit te verwijderen typ je volgende code
Code: Selecteer alles
stylebits #main1.g, 0, _WS_BORDER, 0, 0 'Verwijderd de lijn rond de graphicbox

onder
Code: Selecteer alles
graphicbox  #main1.g, 90, 10, 336, 116                'speciaal voor het BASIC logo


Anthonio
Dual boot: Ubuntu 8.04 - WIndows XP SP2 (via VMware) - Windows Vista 32bit - Toshiba L40 - Dual Core @ 1,76GHz - 1GB RAM - 120GB HDD - VDSL Connection
Avatar gebruiker
anthonio
 
Berichten: 281
Geregistreerd: zo mei 20, 2007 9:58 pm

Re: Leren Programmeren met Liberty BASIC in 2009

Berichtdoor anthonio » do jul 30, 2009 10:44 pm

Ik was dit even vergeten te vermelden:

Code: Selecteer alles
Het .bgg bestand heeft de volgende velden:
 
field #aaa,   
            3 as LIDCODE$,_
            7 as LIDNUMMER$,_
            30 as NAAM$,_
            10 as VOORVOEG$,_
            10 as VOORLETT$,_
            25 as ADRES$,_
            7 as POSTC$,_
            25 as PLAATS$,_
            3 as LAND$,_
            20 as TEL$,_
            6 as LIDSINDS$,_
            3 as AFD$,_
            2 as MAILING$,_
            6 as MUT$,_
            6 as OPZEG$
 
De veld aanvullingen van .ogg zijn:
 
'   7 as MENGNUMMER$
'   60 as EMAIL$
'   7 as BGGLID$
'   2 as BAMAAND$
'   1 as NIVEAU$
'   3 as VRAAGBAAK$
'   3 as QUICK$
'   3 as QB$
'   3 as MSX$
'   3 as PB$
'   3 as VBFD$
'   3 as C64$
'   3 as GW$
'   3 as GFA$
'   3 as TB$
'   3 as VBFW$
'   3 as VBA$
'   3 as VB2005$
'   3 as VBNET$
'   3 as LIBBAS$
'   3 as XBASIC$
'   40 as TALENDIV$
'   40 as TIJDDAG$
'   146 as OPMERKING$
'   20 as ROEPNAAM$
'   1 as GESLACHT$
'   6 as GEBDATUM$
 
Natuurlijk mogen de originele bestanden niet bewerkt worden?
LIDNUMMER$ en MENGNUMMER$ zijn de sleutel velden.


Groeten
Dual boot: Ubuntu 8.04 - WIndows XP SP2 (via VMware) - Windows Vista 32bit - Toshiba L40 - Dual Core @ 1,76GHz - 1GB RAM - 120GB HDD - VDSL Connection
Avatar gebruiker
anthonio
 
Berichten: 281
Geregistreerd: zo mei 20, 2007 9:58 pm

Re: Leren Programmeren met Liberty BASIC in 2009

Berichtdoor Gordon » do jul 30, 2009 10:49 pm

Als je alleen last hebt van een onvolledige rand om je graphicbox,
dan kun je in dit geval (de listing hierboven) gewoon de statictext
wat lager in het venster plaatsen of
gewoon een rem statement voor die regel plaatsen.

Code: Selecteer alles
rem of 'statictext  #main1.static1, "", 30, 100, 540, 430    'speciaal voor de help regels


Gordon
Avatar gebruiker
Gordon
Site Admin
 
Berichten: 684
Geregistreerd: zo mei 22, 2005 12:50 am

Re: Leren Programmeren met Liberty BASIC in 2009

Berichtdoor anthonio » vr jul 31, 2009 10:41 am

Hoi gordon,

Na het toepassen van het REM commando heb ik nog steeds die zwarte rand rond mijn graphicbox dus zonder die stylebit.

Groeten
Dual boot: Ubuntu 8.04 - WIndows XP SP2 (via VMware) - Windows Vista 32bit - Toshiba L40 - Dual Core @ 1,76GHz - 1GB RAM - 120GB HDD - VDSL Connection
Avatar gebruiker
anthonio
 
Berichten: 281
Geregistreerd: zo mei 20, 2007 9:58 pm

Re: Leren Programmeren met Liberty BASIC in 2009

Berichtdoor Gordon » di aug 04, 2009 10:55 pm

Binnenkort heeft u een .bgg bestand nodig als u deze "lessen" wilt volgen.

Hier volgt een listing om een bestand te maken.
Code: Selecteer alles
'programma om een database bestand te maken en te vullen
'bedoeld voor een online "programmeer les"

    NOMAINWIN
    WindowWidth = 521 : WindowHeight = 437
    UpperLeftX = INT((DisplayWidth-WindowWidth)/2)
    UpperLeftY = INT((DisplayHeight-WindowHeight)/2)

[ControlSetup]
statictext  #main.static1, "Lidcode X L of K (Extra Lid kernlid)", 5, 15, 205, 20
statictext  #main.static2, "Lidnummer 7 tekens", 5, 40, 200, 16
statictext  #main.static3, "Achternaam 30 tekens max", 5, 65, 200, 16
statictext  #main.static4, "Voorvoegsels 10 max", 5, 90, 200, 16
statictext  #main.static5, "Voorletters 10 max", 5, 115, 200, 20
statictext  #main.static6, "Adres 25 tekens maximaal", 5, 140, 200, 20
statictext  #main.static7, "Postcode", 5, 165, 200, 20
statictext  #main.static8, "Woonplaats 25 tekens max", 5, 190, 200, 20
statictext  #main.static9, "Land max 3 tekens ", 5, 215, 200, 20
statictext  #main.static10, "Telefoon 20 tekens", 5, 240, 200, 16
statictext  #main.static11, "Inschrijfdatum 6 tekens", 5, 265, 200, 20
statictext  #main.static12, "Afdeling 3 tekens", 5, 290, 200, 20
statictext  #main.static13, "Wil mailing ontvangen 2 tekens", 5, 315, 200, 16
statictext  #main.static14, "Laatste mutatie datum 6 tekens ", 5, 340, 205, 20
statictext  #main.static15, "Opzegdatum 6 tekens", 5, 365, 205, 20
            TextboxColor$ = "White"
textbox     #main.textbox1, 215, 10, 30, 24
            TextboxColor$ = "White"
textbox     #main.textbox2, 215, 35, 60, 24
            TextboxColor$ = "White"
textbox     #main.textbox3, 215, 60, 255, 25
            TextboxColor$ = "White"
textbox     #main.textbox4, 215, 85, 70, 24
            TextboxColor$ = "White"
textbox     #main.textbox5, 215, 110, 70, 24
            TextboxColor$ = "White"
textbox     #main.textbox6, 215, 135, 210, 25
            TextboxColor$ = "White"
textbox     #main.textbox7, 215, 160, 70, 25
            TextboxColor$ = "White"
textbox     #main.textbox8, 215, 185, 210, 24
            TextboxColor$ = "White"
textbox     #main.textbox9, 215, 210, 30, 24
            TextboxColor$ = "White"
textbox     #main.textbox10, 215, 235, 175, 25
            TextboxColor$ = "White"
textbox     #main.textbox11, 215, 260, 50, 25
            TextboxColor$ = "White"
textbox     #main.textbox12, 215, 285, 30, 25
            TextboxColor$ = "White"
textbox     #main.textbox13, 215, 310, 30, 25
            TextboxColor$ = "White"
textbox     #main.textbox14, 215, 335, 50, 25
            TextboxColor$ = "White"
textbox     #main.textbox15, 215, 360, 50, 24

bestand$ = "testbestand2BGG.bgg"
gosub [openBestand]
Record = lof(#r)/163

button #main.button1, "Nw record",[nextRec], UL,420,360
Open bestand$ for Window as #main
    #main "trapclose [quit]"
    #main "font ms_sans_serif 10"
    Wait
[quit]
    close #main
    if bggBestIsOpen = 1 then close #r
    END

[nextRec]

#main.textbox1 "!contents? LIDCODE$"
#main.textbox2 "!contents? LIDNUMMER$"
#main.textbox3 "!contents? NAAM$"
#main.textbox4 "!contents? VOORVOEG$"
#main.textbox5 "!contents? VOORLETT$"
#main.textbox6 "!contents? ADRES$"
#main.textbox7 "!contents? POSTC$"
#main.textbox8 "!contents? PLAATS$"
#main.textbox9 "!contents? LAND$"
#main.textbox10 "!contents? TEL$"
#main.textbox11 "!contents? LIDSINDS$"
#main.textbox12 "!contents? AFD$"
#main.textbox13 "!contents? MAILING$"
#main.textbox14 "!contents? MUT$"
#main.textbox15 "!contents? OPZEG$"

confirm "Record "+str$(Record+1);yn$
    if yn$ ="yes" then
        Record = Record +1
        put #r,Record
    end if
wait

[openBestand]
open bestand$ for random as #r len = 163
bggBestIsOpen = 1
field #r,   3 as LIDCODE$,_
            7 as LIDNUMMER$,_
            30 as NAAM$,_
            10 as VOORVOEG$,_
            10 as VOORLETT$,_
            25 as ADRES$,_
            7 as POSTC$,_
            25 as PLAATS$,_
            3 as LAND$,_
            20 as TEL$,_
            6 as LIDSINDS$,_
            3 as AFD$,_
            2 as MAILING$,_
            6 as MUT$,_
            6 as OPZEG$

return


Ik heb een voorbeeld bestand nodig van ongeveer 100 records.
Wie oh wie maak 100 (of minder) fictieve records?

Gordon.
Avatar gebruiker
Gordon
Site Admin
 
Berichten: 684
Geregistreerd: zo mei 22, 2005 12:50 am

Re: Leren Programmeren met Liberty BASIC in 2009

Berichtdoor Gordon » do sep 17, 2009 10:09 pm

Ik heb tot nu toe 2 inzendingen ontvangen.

Wie maakt het beste programma?
Het programma moet:
- het ledenbestand kunnen sorteren op naam, lidnummer of postcode.
- het invoeren via de invoervelden moeten aan de restricties
(max. aantal tekens numeriek of string) voldoen.
- het moet mogelijk zijn om een mailing te maken (d.w.z. de namen,
en adressen moeten voor enveloppes geschikt uitgeprint kunnen worden.
- eenvoudig een begrijpelijk geschreven zijn.
- geen fouten genereren.
Het programma mag:
- in Just BASIC kunnen draaien.

Inzendingen tot 1 november a.s.

Gordon
Avatar gebruiker
Gordon
Site Admin
 
Berichten: 684
Geregistreerd: zo mei 22, 2005 12:50 am

Re: Leren Programmeren met Liberty BASIC in 2009

Berichtdoor Fred » do sep 24, 2009 12:58 pm

Gordon schreef:Binnenkort heeft u een .bgg bestand nodig als u deze "lessen" wilt volgen.

Hier volgt een listing om een bestand te maken.
Code: Selecteer alles
'programma om een database bestand te maken en te vullen
'bedoeld voor een online "programmeer les"

    NOMAINWIN
    WindowWidth = 521 : WindowHeight = 437
    UpperLeftX = INT((DisplayWidth-WindowWidth)/2)
    UpperLeftY = INT((DisplayHeight-WindowHeight)/2)

[ControlSetup]
statictext  #main.static1, "Lidcode X L of K (Extra Lid kernlid)", 5, 15, 205, 20
statictext  #main.static2, "Lidnummer 7 tekens", 5, 40, 200, 16
statictext  #main.static3, "Achternaam 30 tekens max", 5, 65, 200, 16
statictext  #main.static4, "Voorvoegsels 10 max", 5, 90, 200, 16
statictext  #main.static5, "Voorletters 10 max", 5, 115, 200, 20
statictext  #main.static6, "Adres 25 tekens maximaal", 5, 140, 200, 20
statictext  #main.static7, "Postcode", 5, 165, 200, 20
statictext  #main.static8, "Woonplaats 25 tekens max", 5, 190, 200, 20
statictext  #main.static9, "Land max 3 tekens ", 5, 215, 200, 20
statictext  #main.static10, "Telefoon 20 tekens", 5, 240, 200, 16
statictext  #main.static11, "Inschrijfdatum 6 tekens", 5, 265, 200, 20
statictext  #main.static12, "Afdeling 3 tekens", 5, 290, 200, 20
statictext  #main.static13, "Wil mailing ontvangen 2 tekens", 5, 315, 200, 16
statictext  #main.static14, "Laatste mutatie datum 6 tekens ", 5, 340, 205, 20
statictext  #main.static15, "Opzegdatum 6 tekens", 5, 365, 205, 20
            TextboxColor$ = "White"
textbox     #main.textbox1, 215, 10, 30, 24
            TextboxColor$ = "White"
textbox     #main.textbox2, 215, 35, 60, 24
            TextboxColor$ = "White"
textbox     #main.textbox3, 215, 60, 255, 25
            TextboxColor$ = "White"
textbox     #main.textbox4, 215, 85, 70, 24
            TextboxColor$ = "White"
textbox     #main.textbox5, 215, 110, 70, 24
            TextboxColor$ = "White"
textbox     #main.textbox6, 215, 135, 210, 25
            TextboxColor$ = "White"
textbox     #main.textbox7, 215, 160, 70, 25
            TextboxColor$ = "White"
textbox     #main.textbox8, 215, 185, 210, 24
            TextboxColor$ = "White"
textbox     #main.textbox9, 215, 210, 30, 24
            TextboxColor$ = "White"
textbox     #main.textbox10, 215, 235, 175, 25
            TextboxColor$ = "White"
textbox     #main.textbox11, 215, 260, 50, 25
            TextboxColor$ = "White"
textbox     #main.textbox12, 215, 285, 30, 25
            TextboxColor$ = "White"
textbox     #main.textbox13, 215, 310, 30, 25
            TextboxColor$ = "White"
textbox     #main.textbox14, 215, 335, 50, 25
            TextboxColor$ = "White"
textbox     #main.textbox15, 215, 360, 50, 24

bestand$ = "testbestand2BGG.bgg"
gosub [openBestand]
Record = lof(#r)/163

button #main.button1, "Nw record",[nextRec], UL,420,360
Open bestand$ for Window as #main
    #main "trapclose [quit]"
    #main "font ms_sans_serif 10"
    Wait
[quit]
    close #main
    if bggBestIsOpen = 1 then close #r
    END

[nextRec]

#main.textbox1 "!contents? LIDCODE$"
#main.textbox2 "!contents? LIDNUMMER$"
#main.textbox3 "!contents? NAAM$"
#main.textbox4 "!contents? VOORVOEG$"
#main.textbox5 "!contents? VOORLETT$"
#main.textbox6 "!contents? ADRES$"
#main.textbox7 "!contents? POSTC$"
#main.textbox8 "!contents? PLAATS$"
#main.textbox9 "!contents? LAND$"
#main.textbox10 "!contents? TEL$"
#main.textbox11 "!contents? LIDSINDS$"
#main.textbox12 "!contents? AFD$"
#main.textbox13 "!contents? MAILING$"
#main.textbox14 "!contents? MUT$"
#main.textbox15 "!contents? OPZEG$"

confirm "Record "+str$(Record+1);yn$
    if yn$ ="yes" then
        Record = Record +1
        put #r,Record
    end if
wait

[openBestand]
open bestand$ for random as #r len = 163
bggBestIsOpen = 1
field #r,   3 as LIDCODE$,_
            7 as LIDNUMMER$,_
            30 as NAAM$,_
            10 as VOORVOEG$,_
            10 as VOORLETT$,_
            25 as ADRES$,_
            7 as POSTC$,_
            25 as PLAATS$,_
            3 as LAND$,_
            20 as TEL$,_
            6 as LIDSINDS$,_
            3 as AFD$,_
            2 as MAILING$,_
            6 as MUT$,_
            6 as OPZEG$

return


Ik heb een voorbeeld bestand nodig van ongeveer 100 records.
Wie oh wie maak 100 (of minder) fictieve records?

Gordon.


Hier zijn er 40 Gordon

L 5009861Welbeschouwd D. Parellaan 25 0768 XYNooitgeweten
L 5790543Fantast H. Ledenlaan 37 0895 ZUOveral
L 5480763Weten A.B.M. van het Overvloed 239-A 0657 QYWijsneusstad
L 5123098Weetniks J.K. Verdwaalpad 6 0643 ZAOngeloof
K 5002311Wijsneuzen Q.X. Beroemdlaan 56 0827 WQVerwaand
L 5135265Alles N. van Merelpad 207 0174 HJVogelstad
X X000067Expert M.L. Bekendheidlaan 326 0295 BXMagiedorp
L 5283821Ongehoord Y.G.C. Nooitgeweten 27 0648 MQAltijdzoek
L 5140532Bergop F. van den Alpenheul 33 0372 PQBergstad
L 5501534Bergaf U.S.A.L.M. Dalstraat 4 0282 ABDalen
L 5608543Kwibus W. Kanaalweg 234 0429 PLUitgeteld
L 5000234Sluisdam T. aan den Waterkant 7 0932 AWVloeibaar
L 5975310Vogelman N. Faunastraat 9 0235 QIVlier
L 5975319Visgraat L. van de Zeedijk 4 0712 HGHaringstad
L 5730197Tongfilet R.S. Waterkant 10 0291 YVZeewal
L 5284601Generaal S. Vroeger 36 0185 GFVerleden
L 5001001Totziens I.V. Voorlopig 101 0318 ZPToekomst
L 5001189Willens E.W. Bereidheidslaan 57 0163 BGWetens
L 5000148Huurmens C.O. Valkweg 30 0722 EJDijktol
L 5379021IJsman M. Lollyweg62 0404 KPVrieskou
L 5520803Bezemveger W.L. Schoonveegstraat 89 0382 PSLaagweide
L 5001918Zonder B.L. Kabelpad 205 0593 BQAmstelboer
L 5010656Dalvrouw R.H. Overspan 87 0187 DGOeverloos
L 5144705Huisvrouw J.F. Vorigeweg 39 0822 VTVolgstad
K 5020295Buiswater C.L.G. Grotegolf 261 0549 CGOceaan
L 5023438Hoofdsint Y.N. Spaansebuurt 56 0101 GDPaardehoef
L 5022129Kastdeur V. Voordeur 19 0142 PWBuskruit
L 5220467Mantelzorg Z.K. Huisstraat 82 5399 ACWoningen
L 5240699Gardena L. Wetering 29 0352 PDUitgang
L 5270922Boerenjongen B. Lelieweg 90 0341 STVeestad
L 5323219Streetgirl E.J. Wandelweg 76 0839 RHLekkerdorp
L 5297803Paardenhoef A.V. Smidsstraat 38 0531 PRWeidedorp
L 5036472Boerbiet O.U. Nerogek 73 0537 LABranderstad
L 5837930Vogelkop M.A. Boomstraat 39 0430 BDZeemacht
L 55673 Kanjer X.L. Directweg 931 0694 HGCijferstad
L 5560597Messieurs A.J. Franseweg 70 0564 KSFransegat
L 5720671Gouddelver R.V. Mijnweg 67 0388 GLOngedacht
L 5087099Veldhoogte U. Weidselaan 3 5438 DBHooidorp
L 5111983Aartsboef Y. Kerkstraat 56 0870 70Molshoop
L 5118178Waldorp G.F. Botterweg 24 0343 43Nieuwehaven

mvg Fred
Fred
 
Berichten: 1
Geregistreerd: vr okt 10, 2008 1:30 pm

Re: Leren Programmeren met Liberty BASIC in 2009

Berichtdoor Gordon » za sep 26, 2009 7:29 pm

Ok, hier is een bruikbaar voorbeeld.
De listing draait in Liberty BASIC, maar het kan eenvoudig
voor Just BASIC omgebouwd worden.
JB kent geen Stylebits en geen aanroep van DLL's.

- Probeer de listing om te zetten voor JB.
- Maak routines om de getoonde record gegevens te sorteren.
- Schrijf routines om gegevens uit te printen.

Veel plezier.

Gordon
Bijlagen
ledenadmBGG.zip
Voorbeeld Leden administratie prog
(87.47 KiB) 234 keer gedownload
Avatar gebruiker
Gordon
Site Admin
 
Berichten: 684
Geregistreerd: zo mei 22, 2005 12:50 am


Keer terug naar Leren programmeren met Liberty BASIC

Wie is er online

Gebruikers op dit forum: Geen geregistreerde gebruikers. en 1 gast

cron