Just nu i M3-nätverket
Gå till innehåll

For-sats...?


Eminos

Rekommendera Poster

Jag har lite problem med en For-sats...

 

F = Len(Text2.text)
For I = 0 To F

 

Grejen är att längden på loopen, längden på text2, längden på texten som loopen ska gå igenom, ändras innuti själva loopen...

 

När den ändras (blir större), så vill jag att "F" ska bli större...han ska loopa längre då, jag vill ju att han ska loopa igenom HELA texten...

 

Någon som har en lösning?

 

http://home.tiscali.se/eminos2/eforum_kod.txt

 

/Eminos

 

Länk till kommentar
Dela på andra webbplatser

Det här kan fungera

For I = 1 To Len(Text2.Text)

 

Eller så gör du nåt sånt här istället:

While I =< Len(Text2.Text)
...
I = I + 1
Wend

 

 

Länk till kommentar
Dela på andra webbplatser

Nja, jag tror att han fladdrar iväg med I här utan att göra det med F

' Nu skall vi kolla hur långt färgen sträcker sig
           While Text2.SelColor = t_col
               Text2.SelStart = I
               I = I + 1
           Wend

eller ?

 

[Edit]Jag ska sluta använda Nja...

 

/TN Lite God Jul på er!

 

[inlägget ändrat 2002-12-19 20:58:19 av Don Tomas]

Länk till kommentar
Dela på andra webbplatser

Nja, jag tror att han fladdrar iväg med I här utan att göra det med F

Nja, det tror jag inte han skall göra heller. ;)

F=F+antal_tecken längst ner bör ta hand om den saken.

Det hela ser inte ut att innehålla några fel vid första anblicken.

Kan behöva inspekteras med lupp innan de syns iofs..

 

\\Anp

 

 

Länk till kommentar
Dela på andra webbplatser

Ok, har provat allt som ni har tipsat om nu...

 

Anp: Ditt andra tips om att göra en While slinga istället, fungerade nästan...:)

 

Han körde igenom texten ända till slutet, men det tod en jäkla tid, får lång tid, och efter några sekunder så frös programmet...dessutom så fungerade inte "olika-färg-efter-varandra" längre...:(

 

Nja, jag tror att han fladdrar iväg med I här utan att göra det med F

 

Jag vet inte vad While slingan har med saken att göra?...den kollar ju bara hur långt den färgade texten sträcker sig?, har väl inget med hur långt loopen ska sträcka sej?...lr?

 

I så fall måste han sluta ett steg innan slutet...

 

Han verkar inte ha några problem med det, blir inget overflow, lr nåt...men jag provade iaf...resultatet blev att han slutade loopa ett tecken tidigare än förr...alltså "ingen skillnad"...:)

 

Kan behöva inspekteras med lupp innan de syns iofs..

 

Har ingen lust o göra det?, jag suger verkligen på VB, fattar inte att jag ger in mej på komplicerade projekt...:)

Skulle vara tacksam om ni kunde hjälpa mej med detta...

 

Grejen med det hela verkar vara att han inte läser om "F", han läser aldrig in något nytt värde...han läser aldrig om den raden där For-satsen börjar...utan fortsätter direkt under...that verkar vara the problem...lösning?

 

/Eminos

 

Länk till kommentar
Dela på andra webbplatser

Grejen med det hela verkar vara att han inte läser om "F", han läser aldrig in något nytt värde...

Det var det första jag reagerade på (men vart osäker), man kanske inte kan ha ett variabelt gränsvärde i en For-sats i VB lröht.

 

Att Anp's andra sats™ tar lång tid beror nog på att Len anropas vid varje varv. Prova att byta ut Len(Text2.text) mot F-variabeln.

Sen är det väl bara någon ±1 historia att finjustera...

 

Fundering... är det inte enklare att bygga upp en ny textsträng och sedan byta ut hela Text2.text med den nya ?

 

/TN

 

Länk till kommentar
Dela på andra webbplatser

Ok, allt känns fantastiskt just nu...:)

 

Jag tror jag/vi har fixat till alla buggar, allt funkar som det ska, och han fixar det tom rejält mycket snabbare än förrut...

 

Koden är kanske inte så "liten" (optimerad) som den kan vara, men det funkar ju...:)

 

http://home.tiscali.se/eminos2/eforum_kod.txt

 

Men, jag skulle gärna vilja ha hjälp med en annan grej, som jag inte riktigt vet hur jag ska lösa...

 

På samma sätt som han "kodar" färgerna, så vill jag att han ska kunna fixa CITAT och KOD...(kursiv och fet kommer sen...;)

 

Det jag har gjort hittills är att ge dom en färg (nästan helt svart...;) och köra det under samma loop som färgerna "kollas"...det funkar, nästan jätte bra...förrutom att jag inte kan ha BÅDE CITAT och RÖD färg...för det funkar ju på eforum (tror jag)...man kan citera och färgmarkera ord i citatet...

 

Någon som har en idé hur man kan lösa detta?

 

/Eminos

 

Länk till kommentar
Dela på andra webbplatser

förrutom att jag inte kan ha BÅDE CITAT och RÖD färg

Vad blir det för fel då ? ett tecken kan ju inte vara både rött och svart ;)

 

Annars får du väl ha en flagga/variabel tex inCitat som är TRUE om du är 'inne' i ett citat, annars är den FALSE och skriva lite extra kod som hanterar det tillfället.

 

/TN

 

Länk till kommentar
Dela på andra webbplatser

Hmmm, var det ett uns av sarkasm i det där tacket eller ?

 

Det är klart man måste prova sig fram ;) fast jag provade just, man kan inte ha [ RÖD ] i [ CITAT ], man kan, men det blir ingen röd text.

 

/TN

 

Länk till kommentar
Dela på andra webbplatser

Haha, nä, ingen sarkasm, var lite otydlig...blev bara glad o höra att en annan människa tänkte likadant som jag...:)

 

Nää, men jag tror att man kan ha RÖD i KOD...så var det nog...:)

 

/Eminos

 

Länk till kommentar
Dela på andra webbplatser

Annars får du väl ha en flagga/variabel tex inCitat som är TRUE om du är 'inne' i ett citat, annars är den FALSE och skriva lite extra kod som hanterar det tillfället.

 

Så här har jag just nu när jag färgar det som ska vara 'kod' nästan svart...

 

If Text2.SelText = "" Then GoTo slut

If Text2.SelColor = &H10101 Then 'om det är kod så blir det normal text
Text2.SelFontName = "Verdana"
Text2.SelColor = &H0&
Text2.SelIndent = 0
Else 'om det är normal text så blir det kod
Text2.SelIndent = "300"
Text2.SelFontName = "Courier"
Text2.SelColor = &H10101 'kod färgen (nästan svart)
End If
slut:
Text2.SetFocus

 

Hur ska jag fixa det där om flaggan/variabeln som du snackade om Don Tomas? För det låter ju väldigt 'rätt'...:)

 

/Eminos

 

Länk till kommentar
Dela på andra webbplatser

Jag fattar inte riktigt...

I vilket läge är du/han nu ?

 

Du har en 'SomDetSerUtBox' som hela tiden visar hur inlägget ser ut med färger och så.

 

Är det vid 'Visa kod' som du undrar över nu?

Eller i SomDetSerUtBox'en ?`

 

/TN

 

Länk till kommentar
Dela på andra webbplatser

Nja, asså, jag undrar hur man kan 'markera' texten utan att ändra färg på den helt enkelt...använda nån flagga/variabel, som du själv sa...

 

Det ska funka som om jag färgar texten, men det ska inte ha nåt med färg o göra...:)

 

Varje tecken ska kunna få en true/false beteckning...lite svårt o förklara, men om du tänker efter vad jag ska ha det till (kod och citat), så tror jag att du fattar vad jag vill uppnå...:)

 

Tacksam för hjälp...

 

/Eminos

 

Länk till kommentar
Dela på andra webbplatser

Varje tecken ska kunna få en true/false beteckning...

Jaha, då får du väl skapa en array

Dim flaggor(så stor som texten är) As Boolean

sedan kan du sätta flaggorna med

flaggor(I) = True

och läsa av med

If flaggor(I) Then ...

 

/TN

 

Länk till kommentar
Dela på andra webbplatser

Hmm, ok, tack...jag ska prova (mej fram...;)

 

Vad står I för där?...kan du inte skriva en lite längre kod snutt, jag fattar inte mycket av det du skrev...:)

 

En ny uppdaterad version är uppe...:)

 

/Eminos

 

Länk till kommentar
Dela på andra webbplatser

Asså för det första, hur sjutton ska jag skriva "så stor som texten är"...det ändras ju!

 

Dim flaggor(Len(Text2.text)) As Boolean

 

Detta funkar förståss inte...

 

Och sen måste jag kunna AVflagga oxå...:)

 

[Tillägg]

Hehe, testade att skapa ett Installationsprogram...det blev 27 meg...:)

 

/Eminos

 

Länk till kommentar
Dela på andra webbplatser

Nåt sånt kanske...:

 

Private Sub Command9_Click() 'Kod

If Text2.SelText = "" Then GoTo slut

I = Text2.SelText 'Tar jag bort denna rad, så blir HELA texten "true"

If flaggor(I) = True Then 'Här blir det fel...:(

flaggor(I) = False

Text2.SelIndent = 0

Else

Text2.SelIndent = "300"

flaggor(I) = True

End If

slut:

Text2.SetFocus

End Sub

 

Jag gjorde så här i början:

Dim flaggor(30000) As Boolean

Det funkar...;)

 

/Eminos

 

[inlägget ändrat 2002-12-22 18:18:21 av Eminos]

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...