Spisu treści:

Programowanie w VB6: Wskazówki i porady: 3 kroki
Programowanie w VB6: Wskazówki i porady: 3 kroki

Wideo: Programowanie w VB6: Wskazówki i porady: 3 kroki

Wideo: Programowanie w VB6: Wskazówki i porady: 3 kroki
Wideo: Jak zrobić kalkulator w Visual Basic 2024, Lipiec
Anonim
Programowanie w VB6: porady i wskazówki
Programowanie w VB6: porady i wskazówki

Programuję w wolnym czasie i jestem dość biegłym programistą używającym VB6. Jest to łatwe i jeszcze nie znalazłem niczego, czego potrzebuję do osiągnięcia, a czego nie mogę, chociaż czasami wykonanie zadania może być trudne. Po drodze znalazłem tak wiele denerwujących rzeczy, głównie sposób, w jaki liczy się pewne rzeczy. Oto kompilacja kilku rzeczy, których nauczyłem się po drodze. Zachęcam, jeśli masz jakiekolwiek problemy, komentuj, a postaram się pomóc w kolejnych krokach.

Krok 1: Struny

Smyczki
Smyczki

Sposób, w jaki VB radzi sobie z ciągami, jest czasami mylący.texta = "abcdefg"umieść " symbole po obu stronach tekstu, które mają być liczone jako ciągMid(String, Start, Length) wybiera fragment tekstu z ciągu w ciągach nie ma zero ciągów startowych zaczyna się od 1textb = mid(texta, 2, 2)to tworzy zmienną textb = "bc"textb = mid(texta, 4, 4)to sprawia, że zmienna textb = "defg"textb = mid(texta, 4, 5) to sprawia, że zmienna textb = "defg"Zgadza się, jeśli tekst, który próbujesz zaznaczyć, jest dłuższy niż dostępny tekst, który kończy się na ostatnim znaku, w zależności od programu będziesz musiał umieścić pułapki, aby uniknąć błędów. czy jest to pułapka:textb = mid(texta, 4, 5)if len(textb) < 5 then 'Len() zwraca długość ciągu znaków < oznacza mniej thenmsgbox "tekst jest za krótki" 'Pokazuje okno komunikatu z the stringexit sub 'To wychodzi z sub, w którym się znajdujesz. kończenie kodu. Jeśli jesteś w funkcji, umieściłbyśfunkcjęwyjścia.jeśliznajdując miejsce znaku w ciągu używamy instr(Start, Stri ng1, String2)texta = "abcdefg"textb = instr(1, texta, "c") 'spowoduje to znalezienie litery c w łańcuchu textatextb jest teraz równe 3UWAGA:Instr zwraca 0 (zero), jeśli nie znajdzie znaku REORGANIZACJA:to jest denerwujące powiedz, że chcesz, aby "abcdefg" było "defgabc"texta = "abcdefg"textb = mid(texta, 4, 4) & mid(texta, 1, 3) Nie było tak źle, ale teraz dodajmy instr () funkcje mówią, że chcesz zreorganizować ciąg na znaku kurtyny, ale nie jest to to samo miejsce za każdym razemtexta = "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)zwróć uwagę na część len(texta) - instr(1, texta, " c") + 1, ponieważ instr liczy znak, którego szukasz, więc cofasz się o jeden znak, więc mid() przyjmuje znak, którego szukasz jako pierwszy w ciągu stringtextc teraz równa się "cdefgab"textd = mid(textb, instr(1, textb, "c"), len(textb) - instr(1, textb, "c") + 1) & mid(textb, 1, instr(1, textb, "c") - 1)tekst jest teraz równy ls "cgfabde" spróbujmy znaleźć znak, którego nie ma w stringtexta = "abcdefg"textc = mid(texta, instr(1, texta, "h"), len(texta) - instr(1, texta, "h") + 1) & mid(texta, 1, instr(1, texta, "h") - 1) pojawia się błąd, ponieważ początkowa część Mid() nie może = 0, ponieważ ciągi zaczynają się od 1, więc musisz unikać runtime błąd. tak można to zrobićtexta = "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 'tylko jedna inna instrukcja na if. Sytuacjamsgbox "Nie można znaleźć znaku w ciągu" 'pokazuje okno komunikatu z stringend ifThis podsumowuje prawie wszystko, co musisz wiedzieć o ciągach

Krok 2: Konwersja znaków

Konwersja znaków
Konwersja znaków

HEX: Jeden, który znalazłem na początku tego tygodnia, dotyczy funkcji Hex(number) długość liczby nie ma znaczenia. zwraca ciąg w formacie hex(11111111) zwraca "A98AC7"podczas konwersji znaku ascii na szesnastkę zrobisztexta = "a"hex(asc(texta)) zwraca "61"texta = "k"hex(asc(texta)) zwraca "6B"ciąg będzie miał 2 znaki dla WIĘKSZOŚCI znaków ASCI, chyba że są one poniżej wartości 16 wtedy zwraca tylko 1 znak, jeśli chcesz, aby wszystkie miały 2 znaki, możesz zrobić w następujący sposób:textb = hex(asc(texta))if len(textb) = 1 thentextb = "0" i textb 'to jest zero, a nie a kapitał na koniec, jeśli

Krok 3: Edycja pliku

Edycja pliku
Edycja pliku

aby otworzyć plik potrzebujesz freefile i filenamegfile = FreeFile 'gfile jest teraz następnym dostępnym freefilec = "c:\test.txt"wtedy istnieją 4 sposoby otwarcia pliku wejściowego - Możesz tylko czytać. Wyjście - możesz tylko pisać, a plik zostanie usunięty, jeśli istnieje. powrót karetki i ostatnie znaki wysuwu wierszaDołącz - możesz tylko pisać. doda do istniejącego pliku. powrót karetki i ostatnie znaki wysuwu wiersza Binarny - odczyt i zapis. bardzo dokładny. jedynego, którego teraz używam. do budowania plików dziennika i dołączenie takiego użycia doda nowy wpis na końcu pliku. dla bardziej złożonych plików dziennika załaduj cały plik do zmiennej i dodaj nowy wpis na początku plik.dim stro jako ciąg 'jest to konieczne lub wystąpi błądgfile = FreeFilec = "c:\test.txt"otwórz c dla pliku binarnego jako #gfile 'pamiętaj, że gfile to numberstro = spacja$(lof(gfile)) 'podczas otwierania pliku binarnego musisz określić, jak duża jest długość tekstu, który chcesz pobrać. lof(gfile) zwróci długość pliku g, a spacja$ () zwróci ciąg spacji o długości wprowadzonej liczbyget #gfile, 1, stro 'get z numeru pliku, bajtu początkowego, zmiennej, w której ma zostać zapisany. i ładuje tylko długość zmiennejclose #gfilestro teraz jest równa plikowi test.txt.możesz umieścić informacje do pliku byffile = FreeFilestro = "Nowa linia" & VbCrLf & stro ' dodaje "Nowa linia" oraz powrót karetki i wysuw linii a następnie oryginalny textopen c dla binarnego jako #ffileill cput #ffile, 1, stro 'put nadpisuje poprzednie informacje jeśli plik staje się mniejszy należy najpierw zabić plik, który go usunieclose #ffileplik ma teraz "Nową linię" w jednej rzeczy Znalazłem za pomocą funkcji put, czy ma błędy, jeśli spróbujesz umieścić znak, taki jak put #ffile, 133, chr(1) ' to zastępuje znak w bajcie 133 znakiem 1 lub hex 0x01Znalezione, gdy zrobiłem to za pomocą jednego programu I sprawił, że faktycznie dodano hex 0x08000100000001, co jest cholernie dziwne. Rozwiązałem to, ładując plik do zmiennej i wykonując ciąg modsi = 133stro = mid(stro, 1, i - 1) & chr(1) & mid(stro, i + 1, len(stro) - i), a następnie wstaw #ffile, 1, strothi zadziałało idealnie

Zalecana: