Inhoudsopgave:

Programmeren in VB6: tips en trucs: 3 stappen
Programmeren in VB6: tips en trucs: 3 stappen

Video: Programmeren in VB6: tips en trucs: 3 stappen

Video: Programmeren in VB6: tips en trucs: 3 stappen
Video: Getting Started With Excel VBA: Step By Step Tutorial For Beginners 2024, Juli-
Anonim
Programmeren in VB6: tips en trucs
Programmeren in VB6: tips en trucs

Ik programmeer in mijn vrije tijd en ben een redelijk bekwame programmeur met VB6. Het is gemakkelijk en ik moet nog iets vinden waar ik het voor nodig heb dat het niet kan, hoewel het soms kieskeurig kan zijn om je taak te volbrengen. Onderweg vond ik zoveel vervelende dingen, vooral de manier waarop het bepaalde dingen telt. Dus hier is een compilatie van enkele dingen die ik onderweg heb geleerd. Ik dring er bij je op aan als je problemen hebt commentaar en ik zal proberen te helpen met meer stappen.

Stap 1: Snaren

Snaren
Snaren

De manier waarop VB omgaat met strings is soms verwarrend.texta = "abcdefg"zet " symbolen aan beide kanten van de tekst die je wilt tellen als een string. Mid(String, Start, Length) selecteert een stuk tekst uit een string in strings er is geen nul start strings beginnen bij 1textb = mid(texta, 2, 2)dit maakt de variabele textb = "bc"textb = mid(texta, 4, 4)dit maakt de variabele textb = "defg"textb = mid(texta, 4, 5)dit maakt de variabele textb = "defg"Dat klopt als de tekst die u probeert te selecteren langer is dan de beschikbare tekst, deze eindigt bij het laatste teken, afhankelijk van uw programma moet u traps plaatsen om fouten te voorkomen. is zo'n val:textb = mid(texta, 4, 5)if len(textb) < 5 then 'Len() retourneert de lengte van een string the < betekent minder danmsgbox "tekst is te kort" 'Toont een berichtvenster met de stringexit sub 'Hiermee verlaat u de sub waarin u zich bevindt. beëindigt de code. als u zich in een functie bevindt, zou u exit functionend plaatsen als u de plaats van een teken in een tekenreeks zoekt, gebruiken we instr(Start, Stri ng1, String2)texta = "abcdefg"textb = instr(1, texta, "c") 'dit vindt de letter c in string textatextb is nu gelijk aan 3OPMERKING:Instr retourneert 0 (nul) als het het teken niet vindt REORGANIZING:this is een irritante die zegt dat je wilt dat "abcdefg" "defgabc" is"texta = "abcdefg"textb = mid(texta, 4, 4) & mid(texta, 1, 3) Dat was niet zo erg, maar laten we nu de instr toevoegen () functie: je wilt een string reorganiseren bij een gordijnkarakter, maar het is niet dezelfde plek everytimetexta = "abcdefg"textb = "gfabdec"textc = mid(texta, instr(1, texta, "c")), len(texta) - instr(1, texta, "c") + 1) & mid(texta, 1, instr(1, texta, "c") - 1)let op het deel len(texta) - instr(1, texta, " c") + 1 omdat instr het teken telt waarnaar u op zoek bent, dus u gaat één teken terug, zodat de mid() het teken dat u zoekt, neemt als de eerste in de stringtextc is nu gelijk aan "cdefgab"textd = mid(textb, instr(1, textb, "c"), len(textb) - instr(1, textb, "c") + 1) & mid(textb, 1, instr(1, textb, "c") - 1)sms nu gelijk aan ls "cgfabde"laten we proberen een teken te vinden dat niet in stringtexta = "abcdefg"textc = mid(texta, instr(1, texta, "h")), len(texta) - instr(1, texta, "h" staat)) + 1) & mid(texta, 1, instr(1, texta, "h") - 1) je krijgt een foutmelding omdat het startgedeelte van Mid() niet = 0 kan zijn omdat strings bij 1 beginnen, dus je moet de runtime vermijden fout. dit is een manier om ittexta = "abcdefg"if instr(1, texta, "h") 0 thentextc = mid(texta, instr(1, texta, "h")), len(texta) - instr(1, texta) te doen, "h") + 1) & mid(texta, 1, instr(1, texta, "h") - 1)else 'slechts één else-instructie per if situationmsgbox "Kan teken in string niet vinden" 'toont een berichtvenster met de stringend ifThis vat vrijwel alles samen wat je moet weten over strings

Stap 2: Tekens converteren

Tekens converteren
Tekens converteren

HEX: Een die ik eerder deze week vond, heeft te maken met de functie Hex(getal) de lengte van het getal doet er niet toe. = "a"hex(asc(texta)) geeft als resultaat "61"texta = "k"hex(asc(texta)) geeft als resultaat "6B"de string zal 2 tekens lang zijn voor de MEESTE ASCI-tekens, tenzij de waarde kleiner is dan 16 dan retourneert het slechts 1 teken als je wilt dat ze allemaal 2 tekens zijn, doe je als volgt:textb = hex(asc(texta))if len(textb) = 1 thentextb = "0" en textb 'dat is een nul, geen hoofdletter als

Stap 3: Bestandsbewerking

Bestandsbewerking
Bestandsbewerking

om een bestand te openen heb je een freefile nodig en een filenamegfile = FreeFile 'gfile is nu de volgende beschikbare freefilec = "c:\test.txt" dan zijn er de 4 manieren waarop je een file kunt openen Invoer - Je kunt alleen lezen. Uitvoer - U kunt alleen schrijven en het zal het bestand wissen als het bestaat. regelterugloop en regelinvoer laatste tekensAppend - U kunt alleen schrijven. het wordt toegevoegd aan het bestaande bestand. regelterugloop en regelinvoer laatste tekensBinair - Lezen en schrijven. erg precies. de enige die ik nu gebruik.voor het bouwen van logbestanden en voor dergelijk gebruik voeg ik het nieuwe item toe aan het einde van het bestand.voor complexere logbestanden laadt u het hele bestand in een variabele en voegt u het nieuwe item toe aan het begin van de file.dim stro as string 'dit is nodig, anders ontstaat er een errorgfile = FreeFilec = "c:\test.txt"open c voor binair als #gfile 'onthoud dat gfile een getallen istro = space$(lof(gfile)) 'bij het openen voor binair moet je aangeven hoe groot de lengte van de tekst is die je wilt nemen is lof(gfile) geeft de lengte van gfile terug en spatie$ () geeft een reeks spaties de lengte van het getal dat je invoertget #gfile, 1, stro 'haal van bestandsnummer, startbyte, variabele om het op te slaan. en laadt alleen de lengte van de variabeleclose #gfilestro is nu gelijk aan het bestand test.txt.u kunt informatie in een bestand plaatsen byfffile = FreeFilestro = "Nieuwe regel" & VbCrLf & stro ' voegt "Nieuwe regel" en carraige return en linefeed toe gevolgd door de originele tekstopen c voor binair als #ffilekill cput #ffile, 1, stro 'put overschrijft eerdere informatie als het bestand kleiner wordt, moet u eerst het bestand doden, waarna het wordt verwijderdclose #ffilehet bestand heeft nu "Nieuwe regel" in één ding Ik ontdekte met de put-functie dat het fouten bevat als je een teken probeert te plaatsen zoalsput #ffile, 133, chr (1) ' dit vervangt het teken op byte 133 met teken 1 of hex 0x01 Ik vond toen ik dit deed met één programma dat ik maakte het eigenlijk toegevoegd hex 0x08000100000001 die freaking raar is. Ik loste dit op door het bestand naar een variabele te laden en string modsi = 133stro = mid(stro, 1, i - 1) & chr(1) & mid(stro, i + 1, len(stro) - i)then te doen #ffile, 1, strothis werkte perfect

Aanbevolen: