Obsah:

Programování ve VB6: Tipy a triky: 3 kroky
Programování ve VB6: Tipy a triky: 3 kroky

Video: Programování ve VB6: Tipy a triky: 3 kroky

Video: Programování ve VB6: Tipy a triky: 3 kroky
Video: Jak bych se naučil programovat, kdybych musel začít ZNOVU? 2024, Listopad
Anonim
Programování ve VB6: Tipy a triky
Programování ve VB6: Tipy a triky

Programuji ve svém volném čase a jsem docela zdatný programátor pomocí VB6. Je to snadné a zatím jsem nenašel nic, co bych potřeboval, aby se to podařilo, což se nepodaří, i když někdy může být náročné splnit svůj úkol. Po cestě jsem našel tolik otravných věcí, většinou způsob, jakým počítá určité věci. Zde je tedy kompilace některých věcí, které jsem se cestou naučil. Naléhám na vás, pokud máte nějaké problémy, komentujte a pokusím se pomoci s dalšími kroky.

Krok 1: Řetězce

Řetězce
Řetězce

Způsob, jakým se VB zabývá řetězci, je někdy matoucí. Texta = "abcdefg" vložte "symboly na obě strany textu, který chcete počítat jako řetězecMid (String, Start, Length) vybere část textu z řetězců stringin neexistuje nulové startovací řetězce začínají na 1textb = mid (texta, 2, 2) toto dělá proměnnou textb = "bc" textb = mid (texta, 4, 4) toto dělá proměnnou textb = "defg" textb = mid (texta, 4, 5) toto dělá proměnnou textb = "defg" To je pravda, pokud text, který se pokoušíte vybrat, je delší než dostupný text, který končí na posledním znaku, v závislosti na vašem programu budete muset umístit pasti, aby se předešlo chybám. je taková past: textb = mid (texta, 4, 5) if len (textb) <5 then 'Len () returns the length of the string the <means less thenmsgbox "text is too short"' Show a message box with subex stringexit 'Tím se opustí sub, ve kterém se nacházíte. konec kódu. pokud jste ve funkci, pak byste dali exit functionend iffinding místo znaku v řetězci používáme instr (Start, Stri ng1, String2) texta = "abcdefg" textb = instr (1, texta, "c") 'toto vyhledá písmeno c v řetězci textatextb se nyní rovná 3 UPOZORNĚNÍ: Instr vrátí 0 (nula), pokud nenajde znak REORGANIZACE: toto je otravné, řekněme, že chcete, aby „abcdefg“bylo „defgabc“texta = „abcdefg“textb = mid (texta, 4, 4) & mid (texta, 1, 3) To nebylo tak špatné, ale nyní přidáme do instr () functionsay chcete reorganizovat řetězec na znaku opony, ale není to stejné místo 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) všimněte si části len (texta) - instr (1, texta, " c ") + 1, protože instr počítá hledaný znak, takže se vrátíte o jeden znak zpět, takže mid () vezme hledaný znak jako první v řetězci textu c se nyní rovná" cdefgab "textd = mid (textb, instr (1, textb, "c"), len (textb) - instr (1, textb, "c") + 1) & mid (textb, 1, instr (1, textb, "c") - 1) textd now equa ls "cgfabde" zkusme najít znak, který není v stringtexta = "abcdefg" textc = mid (texta, instr (1, texta, "h"), len (texta) - instr (1, texta, "h") + 1) & mid (texta, 1, instr (1, texta, "h") - 1) zobrazí se chyba, protože počáteční část Mid () nemůže = 0, protože řetězce začínají na 1, takže se musíte vyhnout době běhu chyba. toto je jeden ze způsobů, jak to udělat 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 'pouze jeden jiný příkaz pro if Situace msgbox "Nelze najít znak v řetězci"' zobrazí okno se zprávou s stringend ifTo shrnuje téměř vše, co potřebujete o řetězcích vědět

Krok 2: Převádění postav

Převádění postav
Převádění postav

HEX: Jedna, kterou jsem našel tento týden, má co do činění s funkcí Hex (číslo) na délce čísla nezáleží. Vrací řetězec v hexhexu (11111111) vrací "A98AC7" při převodu znaku ascii na hex byste dotexta = "a" hex (asc (texta)) vrací "61" texta = "k" hex (asc (texta)) vrací "6B" řetězec bude mít 2 znaky pro MOST Z ASCI znaků, pokud nejsou pod hodnotou 16 pak vrátí pouze 1 znak, pokud chcete, aby všechny byly 2 znaky, udělali byste to takto: textb = hex (asc (texta)) if len (textb) = 1 thentextb = "0" and textb 'that is a zero not a kapitálový výnos, pokud

Krok 3: Úpravy souborů

Úpravy souborů
Úpravy souborů

k otevření souboru potřebujete soubor freefile a název_souboru_gfile = FreeFile 'gfile je nyní dalším dostupným freefilec = "c: / test.txt", pak existují 4 způsoby, jak můžete otevřít fileInput - můžete pouze číst. Výstup - Můžete pouze zapisovat a soubor smaže, pokud existuje. poslední znaky carriage return a linefeedAppend - můžete pouze psát. přidá se do stávajícího souboru. carriage return and linefeed last characters Binary - Read and write. velmi přesné. jediný, který nyní používám. pro vytváření souborů protokolu a takové použití připojí nový záznam na konec souboru. u složitějších souborů protokolu načtěte celý soubor do proměnné a přidejte nový záznam na začátek file.dim stro jako řetězec 'to je nutné, jinak dojde k chybě ggile = FreeFilec = "c: / test.txt" otevřít c pro binární jako #gfile' pamatovat gfile je numberstro = mezera $ (lof (gfile)) 'při otevírání pro binární musíte říct, jak velká délka textu, který chcete vzít, je lof (gfile) vrátí délku gfile a mezera $ () vrátí řetězec mezer o délce čísla, které zadáte #gfile, 1, stro 'get from file number, starting byte, variable to save it to. a načte pouze délku proměnnéclose #gfilestro se nyní rovná souboru test.txt. Informace můžete vložit do souboru byffile = FreeFilestro = "New line" & VbCrLf & stro 'přidá "New line" a carraige return and linefeed následuje původní texttopen c pro binární jako #ffilekill cput #ffile, 1, stro 'put přepíše předchozí informace, pokud se soubor zmenšuje, měli byste nejprve zabít soubor, který jej smaže zavřít #ffilethe soubor má nyní v nové věci "Nový řádek" Zjistil jsem, že s funkcí put je, že má chyby, pokud se pokusíte vložit znak jakoput #ffile, 133, chr (1) 'toto nahradí znak v bajtu 133 znakem 1 nebo hexem 0x01. Zjistil jsem, když jsem to udělal s jedním programem I ve skutečnosti přidal hex 0x08000100000001, což je šílené. Vyřešil jsem to načtením souboru do proměnné a provedením řetězce modsi = 133stro = mid (stro, 1, i - 1) & chr (1) & mid (stro, i + 1, len (stro) - i) then put #ffile, 1, strothis fungoval perfektně

Doporučuje: