Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-13 06:57
Ohjelmoin vapaa -ajallani ja olen melko taitava ohjelmoija, joka käyttää VB6: ta. Se on helppoa, enkä ole vielä löytänyt mitään tarvitsemaani saavuttaakseni sitä, mitä se ei voi, vaikka joskus voi olla hienoa saavuttaa tehtäväsi. Matkan varrella löysin niin paljon ärsyttäviä asioita, lähinnä tapaa, jolla se laskee tiettyjä asioita. Joten tässä on kokoelma joitain asioita, joita olen oppinut matkan varrella. Kehotan sinua kommentoimaan, jos sinulla on ongelmia, ja yritän auttaa sinua lisää vaiheissa.
Vaihe 1: Jouset
Tapa, jolla VB käsittelee merkkijonoja, on joskus hämmentävää.texta = "abcdefg" laita "symboleja tekstin molemmille puolille, jotka haluat lukea merkkijonona nolla aloitusmerkkijonot alkavat kohdasta 1textb = mid (texta, 2, 2), jolloin muuttuja textb = "bc" textb = mid (texta, 4, 4) tekee muuttujasta textb = "defg" textb = mid (texta, 4, 5) tämä tekee muuttujasta textb = "defg" Aivan oikein, jos valitsemasi teksti on pidempi kuin käytettävissä oleva teksti, joka päättyy viimeiseen merkkiin ohjelmasta riippuen, sinun on sijoitettava ansoja virheiden välttämiseksi. on tällainen ansa: textb = mid (texta, 4, 5) jos len (textb) <5 niin 'Len () palauttaa merkkijonon pituuden <tarkoittaa vähemmän sittenmsmsbox "teksti on liian lyhyt"' Näyttää viestiruudun the stringexit sub 'Tämä poistuu aliosasta, jossa olet. lopettaa koodin. jos olet funktiossa, aseta exit -toiminto, joka etsii merkkijonon paikan merkkijonossa, käytä instr (Start, Stri ng1, merkkijono2) texta = "abcdefg" textb = instr (1, texta, "c") 'tämä löytää kirjaimen c merkkijonossa textatextb on nyt 3 HUOMAUTUS: Instr palauttaa 0 (nolla), jos se ei löydä merkkiä REORGANIZING: tämä on ärsyttävä sanonta, että haluat "abcdefg": n olevan "defgabc" texta = "abcdefg" textb = mid (texta, 4, 4) & mid (texta, 1, 3) Se ei ollut kovin paha, mutta nyt lisätään ohjeet () -toiminnot Jos haluat järjestää merkkijonon uudelleen verhomerkille, mutta se ei ole sama paikka 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) huomioi osa len (texta) - instr (1, texta, " c ") + 1, koska instr laskee etsimäsi merkin, joten siirryt yhden merkin taaksepäin, niin mid () pitää etsimäsi merkin merkkijonon tekstissä ensimmäisenä nyt" cdefgab "textd = mid (textb, instr (1, textb, "c"), len (textb) - instr (1, textb, "c") + 1) & mid (textb, 1, instr (1, textb, "c") - 1) textd nyt sama ls "cgfabde" yrittää yrittää löytää merkin, joka ei ole merkkijonossa.) + 1) & mid (texta, 1, instr (1, texta, "h") - 1) saat virheen, koska Mid (): n aloitusosa ei voi olla = 0, koska merkkijonot alkavat 1: stä, joten sinun on vältettävä ajonaikaa virhe. tämä on yksi tapa tehdä se, "h") + 1) & mid (texta, 1, instr (1, texta, "h") - 1) else 'vain yksi muu lauseke per if situmsgbox "Merkkijonosta ei löydy merkkiä" "näyttää viestiruudun stringend ifTämä tiivistää melkein kaiken, mitä sinun tarvitsee tietää merkkijonoista
Vaihe 2: Hahmojen muuntaminen
HEX: Yksi, jonka löysin aiemmin tällä viikolla, liittyy Hex (luku) -funktioon, numeron pituudella ei ole väliä. Se palauttaa merkkijonon hexhex -muodossa (11111111) palauttaa "A98AC7", kun muunnetaan ascii -merkki heksadesimaaliksi = "a" hex (asc (texta)) palauttaa "61" texta = "k" hex (asc (texta)) palauttaa "6B" merkkijono on 2 merkkiä useimmille ASCI -merkeille, elleivät ne ole alle 16 niin se palauttaa vain yhden merkin, jos haluat niiden kaikkien olevan 2 merkkiä, toimisit seuraavasti: textb = hex (asc (texta)) jos len (textb) = 1 thentextb = "0" ja textb 'joka on nolla ei a pääomaa, jos
Vaihe 3: Tiedoston muokkaus
tiedoston avaamiseen tarvitset freefilen ja tiedostonimigfile = FreeFile 'gfile on nyt seuraava käytettävissä oleva freefilec = "c: / test.txt", niin voit avata tiedoston neljällä tavallaInput - Voit vain lukea. Tulos - Voit kirjoittaa vain ja se poistaa tiedoston, jos se on olemassa. vaunun paluu ja rivin syöttö viimeiset merkit Liite - Voit kirjoittaa vain. se lisää olemassa olevaan tiedostoon. vaunun paluu ja rivin syöttö viimeiset merkit Binaarinen - Lue ja kirjoita. erittäin tarkka. ainoa, jota käytän nyt. lokitiedostojen rakentamiseen ja tällaiseen käyttöliitteeseen se lisää uuden merkinnän tiedoston loppuun. monimutkaisemmille lokitiedostoille lataa koko tiedosto muuttujaan ja lisää uusi merkintä file.dim stro kuin merkkijono 'tämä on välttämätöntä tai tulee virhe 'Kun avaat binääriä varten, sinun on kerrottava, kuinka suuri tekstin pituus on lof (gfile) palauttaa gfile: n pituuden ja välilyönti $ () palauttaa välilyönnin kirjoittamasi luvun pituuden mukaan #gfile, 1, stro 'saada tiedostonumerosta, alkaen tavu, muuttuja tallentaa sen. ja lataa vain muuttujan close #gfilestro pituus on nyt sama kuin tiedosto test.txt. voit laittaa tietoja tiedostoon byffile = FreeFilestro = "New line" & VbCrLf & stro 'lisää "New line" ja carraige return and linefeed jota seuraa alkuperäinen tekstiavain c binaarille, kuten #ffilekill cput #file, 1, stro 'put korvaa aiemmat tiedot, jos tiedosto pienenee, sinun tulee tappaa ensin tiedosto, joka poistaa sen sulje #ffilethe tiedostossa on nyt "uusi rivi" Löysin put -funktiolla, että siinä on virheitä, jos yrität laittaa merkin kutenput #file, 133, chr (1) 'tämä korvaa tavun 133 merkin merkkillä 1 tai hex 0x01 Löysin, kun tein tämän yhdellä ohjelmalla I teki siitä todella lisätty hex 0x08000100000001, joka on hämmästyttävää. Ratkaisin tämän lataamalla tiedoston muuttujaan ja tekemällä merkkijonon modsi = 133stro = mid (stro, 1, i - 1) & chr (1) & mid (stro, i + 1, len (stro) - i) ja laita sitten #tiedosto, 1, stroth toimi täydellisesti