Lenz en Visual Basic

Gestart door h.evering, 17 februari 2008, 10:11:05 AM

doomslu

citaat:
Geplaatst door INFO

...

Het werkt, en als iets werkt moet je er vanaf blijven is mijn ervaring.

Dat is een gezonde redenering in de informaticawereld. [;)]
luc    * MODEL RAILROADING IS FUN *

INFO

Hans,

Hier heb je een werkend voorbeeld, op basis van de eerder getoonde code.

Link verwijdert, hij heeft zijn werk gedaan, en is verder niet meer nodig.
Alleen de waarheid ligt in het midden.

eve

Voor Visual Basic heb ik C++ gebruikt. Dat ging zeer snel. Na de overstap had ik bedenkingen bij de snelheid van Visual Basic. Ik optimaliseerde alles naar snelheid. Mijn opmerking is ??n van de mogelijkheden om tijd te winnen, niet zelf uitgevonden, maar gevonden in de literatuur terzake.

Latere metingen hebben geleerd dat er geen problemen zijn met de snelheid van Visual Basic -exe's. Toch blijf ik die zaken toepassen : tijd heb je nooit genoeg. Geheugenruimte ook niet.

Erik


eve

Stringconcatenatie in Visual Basic :

Naam = Voornaam & Familienaam

Erik

INFO

citaat:
Geplaatst door buckfast_beekeeper

citaat:
Geplaatst door eve

Hans,




Ik heb het wel iets moeilijker met de naamgeving van de variabele
Dim inbyte As String
Dim tel As Integer

Dit is zeker geen coherente en logische naamgeving.
Dim strIn As String
Dim intTel As Integer
lijken me hier veel logischer.

Om code leesbaar te houden, zijn er nog wel wat basis regeltjes. Indien gewenst kan ik er nog wel wat toevoegen.



Dat hoeft niet, die regels zijn mij bekend, alleen zoals ik al zei, de code is al oud, en werkt dus verander ik daar niets aan.

Zie deze code, die zal meer voldoen aan jouw basis regeltjes. Of het leesbaarder is, daar verschillen de meningen over.

Public Sub OpenNieuwBaanPlanDeel2(ByVal p_bAborted As Boolean)

   'Aanmaken directory structuur voor nieuwe baan
   
   Dim sPathAndFile As String
   Dim bDoorgaan As Boolean
   Dim iCounter As Integer
   
   If p_bAborted Then
       'Cancel ingedrukt op het formulier
       bDoorgaan = False
       'zet oude baan weer terug (indien geladen) en toon deze
       g_sGekozenBaan = m_sOudeGekozenBaan
       If g_sGekozenBaan <> "" Then
           Call ShowBaanPlanForm
       End If
   Else
       bDoorgaan = True
   End If
   If bDoorgaan Then
       'Nu het controleren van de directories en aanmaken  van de directories voor de nieuwe baan
       sPathAndFile = GetUserDocumentsAndSettingsPath(CSIDL_PERSONAL) & "" & App.ProductName & "Banen" & g_sGekozenBaan
       If Dir(sPathAndFile, vbDirectory) <> "" Then
           'Baan (if in ieder geval de directory) bestaat reeds
           If MsgBox(GetText(LoadText(CInt(123)), g_sGekozenBaan) & vbCrLf & vbCrLf & LoadText(CInt(124)) & vbCrLf & vbCrLf & sPathAndFile, vbInformation + vbYesNo) = vbYes Then
               'Overschijven, echt zeker weten ?
               If MsgBox(GetText(LoadText(CInt(125)), g_sGekozenBaan), vbCritical + vbOKCancel) = vbOK Then
                   'Oude directory helemaal weggooien
                   Call KillBaanPlan(sPathAndFile)
                   Call MsgBox(GetText(LoadText(CInt(126)), g_sGekozenBaan), vbInformation + vbOKOnly)
               Else
                   'Vertel gebruiker dat ie een andere naam moet gebruiken
                   Call MsgBox(LoadText(CInt(127)), vbInformation + vbOKOnly)
                   g_sGekozenBaan = ""
                   bDoorgaan = False
               End If
           Else
               g_sGekozenBaan = ""
               bDoorgaan = False
           End If
       End If
   End If
   
   If bDoorgaan Then
       'Directory aanmaken
       Call MkDir(sPathAndFile)
       'Aanmaken INI file voor de nieuwe baan, beginnen met alleen
       ' de datum gemaakt en gewijzigd.
       g_sINIFileName = GetUserDocumentsAndSettingsPath(CSIDL_PERSONAL) & "" & App.ProductName & "Banen" & g_sGekozenBaan & "" & g_sGekozenBaan & gsINIEXTENSION
       Call WriteINI(gsINIGENERAL, gsINICREATED, CStr(Now()))
       Call WriteBaanLastModified
       Call WriteINI(gsINIGENERAL, gsININAME, g_sGekozenBaan)
       Call WriteINI(gsINIGENERAL, gsINISCALE, IIf(frmBaanInstellingen.optSchaalN.Value = True, "N", "HO"))
       Call WriteINI(gsINIGENERAL, gsINIGRIDVISIBLE, IIf(frmBaanInstellingen.chkShowGrid.Value = vbChecked, "True", "False"))
       Call WriteINI(gsINIGENERAL, gsINITRACKFORMS, frmBaanInstellingen.txtBaanSchermen.Text)
       Call WriteINI(gsINITRACKFORM & "000", gsININAME, LoadText(CInt(175)))
       Call WriteINI(gsINITRACKFORM & "000", gsINISIZEHORIZONTAL, "20")
       Call WriteINI(gsINITRACKFORM & "000", gsINISIZEVERTICAL, "10")
       Call BaanPlanProperties(CInt(0))
       Call OpenNieuwBaanPlanDeel3
   Else
       'Indien nodig, instellingen formulier unloaden
       If IsFormLoaded("frmBaanInstellingen") Then
           Unload frmBaanInstellingen
       End If
       'Menu tonen
       Call SetMainMenu
   End If
   
End Sub

Maar laten we het houden waar het hier eigenlijk omgaat, en dat is iemand met weinig basiskennis helpen iets voor elkaar te krijgen.
Liefst zo simpel en begrijpelijk mogelijk.
Alleen de waarheid ligt in het midden.

h.evering

Beste forumleden,
Ik wil jullie bij deze heel veel dank zeggen. INFO met de intensieve, persoonlijke en succesvolle reacties. Erik voor z'n kennis en vooral z'n peptalk die mij de moed gaf om toch door te gaan ondanks m'n geringe basiskennis. Alle andere forumleden voor  de moeite die ze genomen hebben om kennis aan mij over te dragen.
Met het laatste zip-bestand van INFO heb ik (heeft INFO) mijn LF101 aan de praat gekregen. Nu ga daarmee experimenteren en m'n basiskennis VB oppoetsen. Daar ben ik wel even druk mee denk ik. Ik zal met belangstelling de discussie over dit onderwerp blijven volgen.

Nogmaals dank en groet.
Hans
 

INFO

Beste bijenhouder, dat er in deze code niet wordt ingesprongen heeft te maken met copy en paste,dus ga er maar gerust van uit dat in het origineel ingesprongen wordt. Verder vind ik dit een nutteloze discussie, waarbij de vraagsteller zeker niet zijn voordeel mee zal doen.
Alleen de waarheid ligt in het midden.

INFO

Och ik zal de schouders nog maar eens ophalen me verbazen, en me dan maar omdraaien om verder te gaan met belangrijkere dingen dan deze nutteloze discussie waar niemand iets aan heeft.
Alleen de waarheid ligt in het midden.