Innehållsförteckning:

Programmering i VB6: Tips och tricks: 3 steg
Programmering i VB6: Tips och tricks: 3 steg

Video: Programmering i VB6: Tips och tricks: 3 steg

Video: Programmering i VB6: Tips och tricks: 3 steg
Video: Best Programming Languages #programming #coding #javascript 2024, November
Anonim
Programmering i VB6: Tips och tricks
Programmering i VB6: Tips och tricks

Jag programmerar på fritiden och är en ganska skicklig programmerare som använder VB6. Det är lätt och jag har ännu inte hittat något jag behöver för att åstadkomma det som det inte kan, men ibland kan det vara svårt att utföra din uppgift. Längs vägen hittade jag så många irriterande saker mestadels hur det räknar vissa saker. Så här är en sammanställning av några saker jag lärde mig under vägen. Jag uppmanar dig om du har några problem att kommentera och jag ska försöka hjälpa till med fler steg.

Steg 1: Strängar

Strängar
Strängar

Sättet som VB hanterar strängar är ibland förvirrande. Texta = "abcdefg" put "-symboler på båda sidor av texten som du vill ska räknas som en stringMid (String, Start, Length) väljer en textdel från en stringin strängar det finns ingen noll startsträngar börjar vid 1textb = mid (texta, 2, 2) detta gör variabeln textb = "bc" textb = mid (texta, 4, 4) detta gör variabeln textb = "defg" textb = mid (texta, 4, 5) detta gör variabeln textb = "defg" Det stämmer om texten du försöker markera är längre än den tillgängliga texten den slutar med det sista tecknet beroende på ditt program måste du placera fällor för att undvika fel. Detta är en sådan fälla: textb = mid (texta, 4, 5) om len (textb) <5 då 'Len () returnerar längden på en sträng betyder <mindre dan msgbox "texten är för kort" "Visar en meddelanderuta med stringexit sub 'Detta avslutar suben du befinner dig i. avslutar koden. om du är i en funktion så skulle du sätta exit functionend iffinding the place of a character in a stringwe use instr (Start, Stri ng1, String2) texta = "abcdefg" textb = instr (1, texta, "c") 'detta hittar bokstaven c i strängtextatextb är nu lika med 3NOTE: Instr returnerar 0 (noll) om den inte hittar tecknet REORGANIZING: detta är en irriterande säger att du vill att "abcdefg" ska vara "defgabc" texta = "abcdefg" textb = mid (texta, 4, 4) & mid (texta, 1, 3) Det var inte så illa men nu kan vi lägga till i instr () funktioner säger att du vill omorganisera en sträng vid ett gardintecken men det är inte samma plats 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) notera delen len (texta) - instr (1, texta, " c ") + 1 eftersom instr räknar tecknet du letar efter så du går tillbaka ett tecken så att mitten () tar tecknet du letar efter som det första i stringtextc nu är lika med" cdefgab "textd = mid (textb, instr (1, textb, "c"), len (textb) - instr (1, textb, "c") + 1) & mid (textb, 1, instr (1, textb, "c") - 1) textd nu ekv ls "cgfabde" kan försöka hitta ett tecken som inte finns i stringtexta = "abcdefg" textc = mid (texta, instr (1, texta, "h"), len (texta) - instr (1, texta, "h") + 1) & mid (texta, 1, instr (1, texta, "h") - 1) du får ett fel eftersom startdelen av Mid () inte kan = 0 eftersom strängar börjar vid 1 så du måste undvika körning fel. detta är ett sätt att göra ittexta = "abcdefg" if instr (1, texta, "h") 0 thentextc = mid (texta, instr (1, texta, "h"), len (texta) - instr (1, texta, "h") + 1) & mid (texta, 1, instr (1, texta, "h") - 1) else 'bara ett annat uttalande per if situationmsgbox "Kan inte hitta tecken i sträng"' visar en meddelanderuta med stringend ifThis summerar i stort sett allt du behöver veta om strängar

Steg 2: Konvertera tecken

Konvertera tecken
Konvertera tecken

HEX: En som jag hittade tidigare i veckan har att göra med Hex (tal) -funktionen, längden på siffran spelar ingen roll. Den returnerar en sträng i hexhex (11111111) returnerar "A98AC7" när du konverterar ett ascii -tecken till hex du skulle dotexta = "a" hex (asc (texta)) returnerar "61" texta = "k" hex (asc (texta)) returnerar "6B" strängen kommer att vara 2 tecken för de flesta ASCI -tecknen såvida de inte är under värdet 16 då returnerar den bara 1 tecken om du vill att alla ska vara 2 tecken du skulle göra enligt följande: textb = hex (asc (texta)) om len (textb) = 1 thentextb = "0" och textb 'som är en nolla inte en kapital oend om

Steg 3: Filredigering

Filredigering
Filredigering

för att öppna en fil behöver du en freefile och en filnamnfile = FreeFile 'gfile är nu nästa tillgängliga freefilec = "c: / test.txt" så finns det de fyra sätten du kan öppna en fileInput - Du kan bara läsa. Utmatning - Du kan bara skriva och filen raderas om den finns. vagnretur och radmatning sista tecken Lägg till - Du kan bara skriva. det kommer att lägga till den befintliga filen. vagnretur och radmatning sista teckenBinär - Läs och skriv. mycket exakt. den enda jag använder nu. för att bygga loggfiler och den här användningen lägger till den kommer att lägga till den nya posten i slutet av filen. för mer komplexa loggfiler ladda hela filen till en variabel och lägga till den nya posten i början av filen.dim stro som sträng 'detta är nödvändigt eller det kommer att finnas en errorgfile = FreeFilec = "c: / test.txt" öppen c för binär som #gfile' kom ihåg att gfile är en nummerstro = space $ (lof (gfile)) 'när du öppnar för binär måste du berätta hur stor längden på texten du vill ta är lof (gfile) kommer att returnera längden på gfile och mellanslag $ () returnerar en sträng med mellanslag längden på det nummer du anger #gfile, 1, stro 'get från filnummer, startbyte, variabel för att spara det till. och laddar bara längden på variabeln stäng #gfilestro nu är lika med filen test.txt.you kan lägga information till en fil byffile = FreeFilestro = "Ny rad" & VbCrLf & stro 'lägger till "Ny rad" och carraige retur och linefeed följt av den ursprungliga textopen c för binär som #ffilekill cput #ffile, 1, stro 'put skriver över tidigare information om filen blir mindre bör du döda filen först vilket raderar denclose #ffilethe filen har nu "Ny rad" i en sak Jag hittade med put -funktionen är att det har fel om du försöker sätta ett tecken likeput #ffile, 133, chr (1) 'detta ersätter tecknet vid byte 133 med tecken 1 eller hex 0x01Jag hittade när jag gjorde detta med ett program I gjorde det faktiskt lagt till hex 0x08000100000001 vilket är sjukt konstigt. Jag löste detta genom att ladda filen till en variabel och göra sträng modsi = 133stro = mid (stro, 1, i - 1) & chr (1) & mid (stro, i + 1, len (stro) - i) och lägg sedan #ffile, 1, strothis fungerade perfekt

Rekommenderad: