İçindekiler:

VB6'da Programlama: İpuçları ve Püf Noktaları: 3 Adım
VB6'da Programlama: İpuçları ve Püf Noktaları: 3 Adım

Video: VB6'da Programlama: İpuçları ve Püf Noktaları: 3 Adım

Video: VB6'da Programlama: İpuçları ve Püf Noktaları: 3 Adım
Video: Baştan Başlasaydım Kodlamayı Nasıl Öğrenirdim? 2024, Temmuz
Anonim
VB6'da Programlama: İpuçları ve Püf Noktaları
VB6'da Programlama: İpuçları ve Püf Noktaları

Boş zamanlarımda program yapıyorum ve VB6 kullanan oldukça yetkin bir programcıyım. Bu kolay ve henüz başaramayacağım bir şey bulamadım, ancak bazen görevinizi yerine getirmek çok titiz olabilir. Yol boyunca, çoğunlukla belirli şeyleri sayma biçiminde çok sinir bozucu şeyler buldum. İşte yol boyunca öğrendiğim bazı şeylerin bir derlemesi. Herhangi bir sorununuz varsa yorum yapmanızı rica ediyorum ve daha fazla adımda yardımcı olmaya çalışacağım.

Adım 1: Dizeler

Teller
Teller

VB'nin dizelerle uğraşma şekli bazen kafa karıştırıcıdır.texta = "abcdefg"metnin her iki tarafına "semboller koy" dize olarak sayılmasını istediğiniz metinMid(String, Start, Length) bir dizeden metnin bir bölümünü seçer. sıfır başlangıç dizeleri 1textb = mid(texta, 2, 2) ile başlar bu, textb = "bc"textb = mid(texta, 4, 4) değişkenini yapar, bu textb = "defg"textb = mid(texta, 4) değişkenini yapar, 5) bu, textb = "defg" değişkenini yapar. Seçmeye çalıştığınız metin mevcut metinden daha uzunsa, programınıza bağlı olarak son karakterde bitiyorsa, hatalardan kaçınmak için tuzaklar yerleştirmeniz gerekir. böyle bir tuzaktır:textb = mid(texta, 4, 5)eğer len(textb) < 5 ise 'Len() bir dizgenin uzunluğunu döndürür, bu < daha az mesaj kutusu anlamına gelir "metin çok kısa" 'Bir mesaj kutusu gösterir stringexit sub 'Bu, içinde bulunduğunuz alttan çıkar. kodu sonlandırır. Eğer bir fonksiyondaysanız, bir karakterin bir karakterin yerini bulursa, instr(Start, Stri) kullanırız. ng1, String2)texta = "abcdefg"textb = instr(1, texta, "c") 'bu, string textatextb'deki c harfini bulur, şimdi 3'e eşittir NOT:Instr, REORGANIZING karakterini bulamazsa 0 (sıfır) döndürür:budur "abcdefg"'in "defgabc" olmasını istediğiniz can sıkıcı bir şey texta = "abcdefg"textb = mid(texta, 4, 4) & mid(texta, 1, 3) Bu çok kötü değildi ama şimdi instr'ye ekleyelim () functionsay bir perde karakterindeki bir dizgiyi yeniden düzenlemek istiyorsunuz, ancak bu aynı nokta değil herzamantexta = "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) kısmı not edin len(texta) - instr(1, texta, " c") + 1 çünkü instr aradığınız karakteri sayar, böylece bir karakter geri gidersiniz, böylece mid(), aradığınız karakteri stringtextc'de ilk olarak alır, şimdi "cdefgab"textd = mid('e eşittir. textb, instr(1, textb, "c"), len(textb) - instr(1, textb, "c") + 1) & mid(textb, 1, instr(1, textb, "c") - 1)textd şimdi eşittir ls "cgfabde", stringtexta = "abcdefg"textc = mid(texta, instr(1, texta, "h"), len(texta) - instr(1, texta, "h" içinde olmayan bir karakter bulmayı deneyelim.) + 1) & mid(texta, 1, instr(1, texta, "h") - 1) bir hata alıyorsunuz çünkü Mid()'in başlangıç kısmı = 0 olamaz çünkü dizeler 1'den başlar, dolayısıyla çalışma zamanından kaçınmanız gerekir hata. 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 'her if statusmsgbox "Dizede karakter bulunamıyor" 'ile bir mesaj kutusu gösterir. stringend ifThis, dizeler hakkında bilmeniz gereken hemen hemen her şeyi özetler

Adım 2: Karakterleri Dönüştürme

Karakterleri Dönüştürme
Karakterleri Dönüştürme

HEX:Bu haftanın başlarında bulduğum bir tanesinin Hex(sayı) işleviyle ilgisi var, sayının uzunluğu önemli değil.hexhex(11111111) içinde bir dize döndürür, bir ascii karakterini hex'e dönüştürürken "A98AC7" döndürür. = "a"hex(asc(texta)) döner "61"metin = "k"hex(asc(texta)) döndürür "6B" dize ASCI karakterlerinin çoğu için 2 karakter olacaktır,eğer 16 değerinin altında değilseler o zaman sadece 1 karakter döndürür, eğer hepsinin 2 karakter olmasını istiyorsanız, aşağıdaki gibi yapardınız: textb = hex(asc(texta))if len(textb) = 1 thentextb = "0" ve textb 'bu bir sıfır değil sermaye borcu eğer

Adım 3: Dosya Düzenleme

Dosya Düzenleme
Dosya Düzenleme

bir dosyayı açmak için bir freefile ve bir filenamegfile = FreeFile 'gfile şimdi bir sonraki kullanılabilir freefilec = "c:\test.txt" gerekir, o zaman bir fileInput'u açmanın 4 yolu vardır - Sadece okuyabilirsiniz. Çıktı - Yalnızca yazabilirsiniz ve varsa dosyayı siler. satır başı ve satır besleme son karakterleriAppend - Yalnızca yazabilirsiniz. mevcut dosyaya ekleyecektir. satır başı ve satır besleme son karakterleri İkili - Oku ve yaz. çok hassas. şimdi kullandığım tek şey. günlük dosyaları oluşturmak için ve bu tür kullanım ekleme, dosyanın sonuna yeni girişi ekleyecektir. daha karmaşık günlük dosyaları için tüm dosyayı bir değişkene yükleyin ve yeni girişi dosyanın başına ekleyin file.dim stro ' bu gerekli veya bir errorgfile olacak = FreeFilec = "c:\test.txt" ikili için c'yi #gfile olarak açın 'unutmayın gfile bir numberstro = space$(lof(gfile)) 'İkili için açarken, almak istediğiniz metnin uzunluğunun ne kadar büyük olduğunu söylemelisiniz lof(gfile) gfile uzunluğunu döndürür ve space$ () girdiğiniz sayının uzunluğunu bir boşluk dizesini döndürür #gfile, 1, stro ' dosya numarasından alın, başlangıç baytı, kaydedilecek değişken. ve yalnızca #gfilestro değişkeninin uzunluğunu yükler, şimdi test.txt dosyasına eşittir. bilgileri bir dosyaya koyabilirsiniz byffile = FreeFilestro = "Yeni satır" & VbCrLf & stro ' "Yeni satır" ve satır başı ve satır besleme ekler ardından orijinal textopen c for ikili olarak #ffilekill cput #ffile, 1, stro 'put dosya küçülüyorsa önceki bilgilerin üzerine yazar, önce onu silen dosyayı öldürmelisinizclose #ffiledosyanın artık tek bir şeyde "Yeni satır" var Put işleviyle buldum, likeput #ffile, 133, chr(1) ' gibi bir karakter koymaya çalışırsanız hata veriyor, bu, bayt 133'teki karakter 1 veya hex 0x01 ile değiştiriyor Bunu bir programla yaptığımda buldum gerçekten garip olan hex 0x08000100000001'i ekledi. Bunu, dosyayı bir değişkene yükleyerek ve string modsi = 133stro = mid(stro, 1, i - 1) & chr(1) & mid(stro, i + 1, len(stro) - i) yaparak çözdüm ve sonra #ffile, 1, strothis mükemmel çalıştı

Önerilen: