Implementering av «Sok og erstatt» -funksjonalitet i VB-applikasjonen er veldig enkelt. Den rettferdige og til-punkt-algoritmen som jeg utviklet for dette, vil gjore det lettere for deg a forsta det.

Selv om Visual Basic ikke er et av mine favoritt sprak, liker jeg det enkle og rike sett med biblioteker. Mange ganger nar du utvikler et program som omhandler en enorm mengde tekstdata, trenger du en funksjonalitet som gjor jobben til a korrigere feilaktig ord lettere. Microsoft Word, for eksempel, nar du kjorer en «Stavekontroll», gir deg mulighet til a rette et feilaktig skrevet ord (gjennom forslag). Det tilrettelegger ogsa et «Sok og erstatt» -verktoy som kan brukes til brukerdefinerte ordutskiftninger. Her i denne artikkelen skal jeg ikke gi deg detaljer om a implementere en ordbok; heller, jeg fokuserer pa hvordan denne funksjonen (finn og erstatt) kan implementeres i en VB-applikasjon.

Forutsetninger.

Mens jeg forklarer koden, antar jeg at du har jobbet i Visual Basic og er kjent med ulike innebygde kontroller og biblioteksfunksjoner (jeg har brukt noen fa av dem) som er tilgjengelige fra Visual Studio IDE. Jeg har forsokt a holde koden sa enkel som mulig, og du vil kunne forsta logikken pa en stund. Hvis du vil vite mer om noen biblioteksfunksjoner (for eksempel sin syntaks, parameter og sa videre), besok MSDN online.

Grunnarbeid.

Lag et Standard EXE VB-prosjekt. Endre navn pa standardskjemaet som frmMainForm. Legg til en meny i standardformularen med folgende detaljer (& -tegnet brukes til akseleratorsnokkel og navnet som star foran ordmnu viser menyelementets interne navn (brukes i kode)),

Legg til en TextBox-kontroll i dette skjemaet og endre det pa nytt som txtClientArea. Strek og juster den med musen slik at den dekker hele klientomradet i skjemaet. Sett denne TextBoxs MultiLine-egenskapen til True i Egenskaper-vinduet.

Legg til et annet skjema for dette prosjektet (fra Project> Add Form). Gi nytt navn til dette skjemaet som frmFindReplace og sett egenskapen BorderStyle til 4 – FixedToolWindow fra Egenskaper-vinduet. Na legger du til to TextBox-kontroller og omdoper dem som henholdsvis txtSearchTerm og txtReplaceWithString. Legg til en avkrysningsbokskontroll og endre den pa nytt som chkCaseSense. Til slutt legger du til en kommando-knapp i skjemaet og gir den navnet som cmdReplace.

I frmMainForm skriver du folgende kode:

Det fremgar av koden ovenfor at nar brukeren klikker pa menyelementet «Avslutt», vil vi avslutte soknaden, og nar han velger «Finn og erstatt» undermenyelementet fra «Rediger» -menyen, vil du aktivere frmFindReplace form ved hjelp av a ringe offentlige grensesnitt av frmFindReplace; med andre ord, FindnReplace (). Dette offentlige grensesnittet lar sokealgoritmen v re generisk. Med dette grensesnittet gir du tekstboksen som et argument (der soket skal utfores). Ved a erstatte navnet txtClientArea med ditt eget tekstboks navn, kan du pa samme sokeord erstatte funksjonalitet for sa mange tekstbokser (sa vel som mange ganger) som onsket, uten a gjenta soketeksten. Hovedkoden «Sok og erstatt» er imidlertid bare plassert under frmFindReplace-skjemaet. Koden for denne modulen folger.

Kildekode.

Modus Operandi.

Det offentlige grensesnittet SearchnReplace brukes til a generere algoritmen. Med denne tiln rmingen kan soke- og erstattefunksjonaliteten na implementeres i alle programmer uten a forstyrre koden til frmFindReplace. Det eneste stedet hvor det offentlige grensesnittet kalles; det ma endres.

Den prim re koden for «Sok og erstatt» (SnR) er under cmdReplace_Click () prosedyre og ReplaceFun () -funksjonen. Begynn med den tidligere.

For det forste brukes CaseSense-variabelen for a holde oversikt over brukerens valg av saksfolsomhet. Den er satt til 0 hvis brukeren onsker en saksensitiv SnR; 1 ellers. SourceText og SourceTextCopy-variablene brukes til a holde frmMainForms innhold i txtClientArea (eller det TextBox innholdet som brukeren leverer fra hovedformen. I ditt tilfelle er det txtClientArea). To variabler ‘bruk for det samme innholdet vil v re tydelig i den folgende beskrivelsen (den ene er en midlertidig lagring). Cnt-variabelen brukes til a holde oversikt over slutten av dokumentet og er nyttig nar du re-itererer SnR fra begynnelsen av dokumentet. Denne variabelen viser internt gjeldende markorposisjon, hvorfra neste SnR ma begynne.

Hovedalgoritmen er inneholdt i menslokken, som forblir aktiv sa lenge enten utskiftingene finner sted eller hele kildetekstboksen er skannet.

I neste trinn brukte jeg InStr () biblioteksfunksjonen som returnerer posisjonen (heltallet) til den forste forekomsten av det tredje argumentet i det andre argumentet, startende fra stillingen angitt av det forste argumentet. Det siste argumentet brukes til saksfolsomhetsalternativet.

Verdien returnert av InStr () -funksjonen er mottatt i FndPos. Denne verdien er storre enn null hvis sokestrengen er funnet i kildeteksten; ikke-null ellers. I forste del av If-forste setningen plasseres resultatet (erstattet) i SourceText-variabelen. Og den neste setningen endrer Cnt-variabelen av FndPos + SearchTermLen. Dette kreves fordi na ma SnR begynne fra den nye posisjonen. Pa den annen side, i den andre delen, okes variabelen Cnt med 1, hvilket indikerer at SnR ma fortsette fra neste tegn. De neste setningene brukes til a vise resultatvarslene til brukeren og er sv rt enkle a forsta og implementere. Bare ga gjennom dem, og du vil fa en ide om hva de gjor.

Til slutt, funksjonen ReplaceFun () gjor den faktiske jobben med utskifting. Det plukker opp alle tegnene fra venstre for kilden til posisjonen der sokestrengen ble funnet. Deretter folger resultatet med StringTBReplace, noe som er noe annet enn strengen som skal erstattes med kildens samsvar. Og til slutt er alle de remaing-tegnene i kilden (eksklcuding den som ble matchet) lagt til den. Resultatet returneres deretter.

De gjenv rende funksjonene / prosedyrene gjor jobben med formatering og brukergrensesnittforbedringer og trenger ikke a forklares.

Konklusjon.

Det er ingen enkel metode for effektivt a kode en logikk. Jeg tror at tiln rmingen jeg har brukt her er den mest enkle og fremtredende. Ved a bruke demo-prosjektet og / eller kildekoden, vil du kunne implementere «Sok og erstatt» i soknaden din sa enkelt som mulig. Imidlertid er det sannsynlig at bugs oppstar, og jeg vil forsoke a rette dem etter hvert som jeg finner dem.

Hvis du er interessert i a implementere en «Sok og erstatt», gjor du i stedet for a gjore «Erstatt alle» en «Erstatt en-for-en» eller «Erstatt en gang», ved a justere koden. Du bor stoppe erstattingsoperasjonen umiddelbart etter at forste erstatning er utfort. Utvid koden og implementer den som din egen (ved a gjore mens sloyfen avsluttes ved forste erstatning).

Tilstaelse.

Jeg har ikke en fullstendig funksjonell versjon av Visual Studio .NET pa PCen min (bare den omfordelbare SDK), derfor har jeg ikke kode klar for det samme. Jeg forstar at Visual Basic 6 er ganske gammel, og folk migrerer til .NET-plattformen i et raskere tempo: Jeg er imidlertid sikker pa at denne artikkelen ga deg en grunnleggende ide om a implementere SnR-funksjonaliteten i applikasjonene dine. Med denne koden som et skjelett (base), vil du kunne utvikle din egen SnR i .NET med storre letthet.

Post Author: admin

You may also like

Mgm Detroit slot turnering

Slar Slots pa MotorCity Casino. av Howard Berenbon. Nar du

Best Online Casino Reviews i Canada for ekte spillere!

Hvordan kan vi vite om gambling etablering er bra i

Guida Al Gioco d’Azzardo online.

Du kan spille online pa Italia, og du kan spille

Translation



Hei! Vil du spille i det mest ærlige kasinoet? Vi fant det for deg. Klikk her nå!