Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


filen stängs inte efter läsning av den??

Postades av 2001-04-07 15:06:00 - Robert Forsberg, i forum visual basic - allmänt, Tråden har 6 Kommentarer och lästs av 569 personer

Hej jag håller på och skriver ett litet provprogram som en övning för mig själv, problemet jag har är att när min textfil som jag läser ifrån blir mer än 38kb så stängs inte filen av close kommandot.
Jag bifogar koden.
Textfilen skapas efterhand som man är klar med övningarna i programmet, öppnas för skrivning och stängs med en gång efteråt.

<code>
'byt sökväg till programmets katalog
'
sokveg

'Skapa fil om den inte finns
Open "resultat.txt" For Append As 1 'avstängda i utformandeläge
Close 1
filnr = FreeFile
FindText = UCase(strFornamn & " " & strEfternamn)
''Open "F:\robban\Robban_F\Mittslut\Mittslut\resultat.txt" For Input As filnr
Open "resultat.txt" For Input As filnr
Do While Not EOF(filnr)
X = X + 1
Line Input #filnr, FilBuffer


If InStr(UCase(FilBuffer), FindText) > 0 Then
hit(X) = FilBuffer
hitt = FilBuffer
End If
strArbuppg(X) = Right(hit(X), 1)
intNr = InStr(hitt, ";")

If strArbuppg(X) > "" Then
j = j + 1
Text2 = Text2 & strArbuppg(X) & " , "

If j > 8 Then
j = 1
''Text2 = ""
End If
End If
Loop
Close filnr

If intNr > 0 Then
intForsok = Left(hitt, intNr - 1)
End If

If intForsok = "" Then
intForsok = "1"
End If
End Sub
</code>


Tacksam för tips
Robban


Svara

Sv: filen stängs inte efter läsning av den??

Postades av 2001-04-07 15:26:00 - Pelle Johansson

Det ser rätt ut enligt min mening men du skulle kunna prova att bara skriva Close istället för Close filnr. Det resulterar att den stänger ALLA öppna filer.

/Pelle


Svara

Sv: filen stängs inte efter läsning av

Postades av 2001-04-08 19:15:00 - Robert Forsberg


Det hjälpte inte att utesluta filnr i close kommandot, felet låg i att de två variablernas index blev större än det max index dom var satta till, verkar som om programmet bara hoppar vidare i koden och skiter i allting efter sista loopen när väl maxindex är uppnått och filen förblir öppen.
Nu en fråga kan man dimma om variabeln under körning om den redan är satt till EX: ""Global strArbuppg(2000) As String "" eller skall man sätta den så stor att det inte finns risk att indexet uppnås.

Robban


Svara

Sv: filen stängs inte efter läsning av den??

Postades av 2001-04-08 20:50:00 - Pelle Johansson

Du kan använda dig av ett kommando som heter REDIM PRESERVE och omdimentionera en array. Exempel:

<code>
Private Sub Form_Load()

ReDim strArbuppg(0)

For a = 1 To 100
tmp = UBound(strArbuppg)
ReDim Preserve strArbuppg(tmp + 1)
Next

MsgBox UBound(strArbuppg)

End Sub
</code>

/Pelle


Svara

Sv: filen stängs inte efter läsning av den??

Postades av 2001-04-08 21:27:00 - Andreas Hillqvist

Det är väldigt inefektivt att göra en redim för varje loop. Om man istället lagrar antalet poster i en variabel och fördublar storleken när index överstiger eller är lika med storleken.

Ex1:
<code>
Dim Index as Long
Dim Size as Long
Dim Data() as string

Redim Data(1 to 20)
Size = 20

Do until Index > 10000
Index = Index + 1
If Index > Size Then
Size = Size * 2
Redim Preserve Data(1 To Size)
End If
Data(1) = "Item: " & Index
Next
</code>
Ex2:
<code>
Dim Index as Long
Dim Size as Long
Dim Data() as string

Do until Index > 10000
Index = Index + 1
If Index > Size Then
Size = Size + 20
Redim Preserve Data(1 To Size)
End If
Data(1) = "Item: " & Index
Next
</code>


Svara

Sv: filen stängs inte efter läsning av

Postades av 2001-04-10 17:27:00 - Robert Forsberg

Tackar för hjälpen skall prova detta så fort jag får en stund över.
Tack
Robban


Svara

Sv: filen stängs inte efter läsning av den??

Postades av 2001-04-10 17:33:00 - Pelle Johansson

Då vill jag kontra med mindre kod där man anger hur många gånger programmet skall köra redim. Exemplet kör 1000 loopar och var 100'e gång så körs en Redim. Alltså 10 gånger..

<code>
Private Sub Form_Load()

Dim steps = 100
ReDim strArbuppg(100)

For a = 1 To 1000
If a Mod 100 = 0 Then
tmp = UBound(strArbuppg)
ReDim Preserve strArbuppg(Tmp + Steps)
End If
Next

MsgBox UBound(strArbuppg)

End Sub
</code>

/Pelle


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 619
27 953
271 709
5 740
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies