/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
Jeg vil gemme list1 på en fil men kan kun ~
Fra : Sir


Dato : 06-06-01 10:30

'dette virker

Open "C:\liste.txt" For Output As #1

Print #1, Text1.Text

Close #1

---------------------

'dette virker ikke hvorfor?

Open "C:\liste.txt" For Output As #1

Print #1, List1 '.???

Close #1




 
 
Ove Steen Hansen (06-06-2001)
Kommentar
Fra : Ove Steen Hansen


Dato : 06-06-01 12:12

Open "C:\liste.txt" For Output As #1
For N = 0 To List1.ListCount - 1
Print #1, List1.List(N)
Next N
Close #1
/Ove

"Sir" <skriv_til@hotmail.com> wrote in message
news:9fkt07$1ef$1@sunsite.dk...
> 'dette virker
>
> Open "C:\liste.txt" For Output As #1
>
> Print #1, Text1.Text
>
> Close #1
>
> ---------------------
>
> 'dette virker ikke hvorfor?
>
> Open "C:\liste.txt" For Output As #1
>
> Print #1, List1 '.???
>
> Close #1
>
>
>



Tim Sørensen (06-06-2001)
Kommentar
Fra : Tim Sørensen


Dato : 06-06-01 12:13

> 'dette virker ikke hvorfor?
>
> Open "C:\liste.txt" For Output As #1
>
> Print #1, List1 '.???
>
> Close #1

Prøv med dette i stedet :)

Open "C:\liste.txt" For Output As #1
List1.ListIndex = 0

Do
On Error GoTo Slut
Print #1, List1.Text
List1.ListIndex = List1.ListIndex + 1
Loop Until List1.ListIndex = List1.ListCount

Slut:
Close #1

--
Mvh.... Tim Sørensen
http://dondata.adsl.dk





Sir (06-06-2001)
Kommentar
Fra : Sir


Dato : 06-06-01 12:26

1000 tak for hjælpen

"Tim Sørensen" <dondata@dondata.adsl.dk> skrev i en meddelelse
news:9fl39t$249$1@news.inet.tele.dk...
> > 'dette virker ikke hvorfor?
> >
> > Open "C:\liste.txt" For Output As #1
> >
> > Print #1, List1 '.???
> >
> > Close #1
>
> Prøv med dette i stedet :)
>
> Open "C:\liste.txt" For Output As #1
> List1.ListIndex = 0
>
> Do
> On Error GoTo Slut
> Print #1, List1.Text
> List1.ListIndex = List1.ListIndex + 1
> Loop Until List1.ListIndex = List1.ListCount
>
> Slut:
> Close #1
>
> --
> Mvh.... Tim Sørensen
> http://dondata.adsl.dk
>
>
>
>



Jens (06-06-2001)
Kommentar
Fra : Jens


Dato : 06-06-01 18:29


I skal bruge FreeFile eller kan i komme galt afsted......i kan læse om det i
hjælpemenuen

Dim Fri
Fri = FreeFile
Open "C:\liste.txt" For Output As #Fri
List1.ListIndex = 0

Do
On Error GoTo Slut
Print #1, List1.Text
List1.ListIndex = List1.ListIndex + 1
Loop Until List1.ListIndex = List1.ListCount

Slut:
Close #Fri




Jens (06-06-2001)
Kommentar
Fra : Jens


Dato : 06-06-01 18:32

Sorry istedt for

Print #1, List1.Text skal der stå Print #Fri



Dim Fri
Fri = FreeFile
Open "C:\liste.txt" For Output As #Fri
List1.ListIndex = 0

Do
On Error GoTo Slut
Print #Fri, List1.Text
List1.ListIndex = List1.ListIndex + 1
Loop Until List1.ListIndex = List1.ListCount

Slut:
Close #Fri



Tomas Christiansen (07-06-2001)
Kommentar
Fra : Tomas Christiansen


Dato : 07-06-01 00:08

Jens skrev:
> Do
> On Error GoTo Slut
> Print #Fri, List1.Text
> List1.ListIndex = List1.ListIndex + 1
> Loop Until List1.ListIndex = List1.ListCount
>
> Slut:

Hvad skal din 'On Error GoTo Slut' gøre godt for?
Forventer du at få fejl, når du skriver til filen?

-------
Tomas



Jens (07-06-2001)
Kommentar
Fra : Jens


Dato : 07-06-01 00:40

Næ...du har ret Tomas ....fjern det ....



Ove Steen Hansen (07-06-2001)
Kommentar
Fra : Ove Steen Hansen


Dato : 07-06-01 07:23

Hvis filen skrives til drev A, kan disketten f.eks. blive fuld. Så
er On Error jo god nok!
/Ove

"Tomas Christiansen" <toc@blikroer.removethis.dk> wrote in message
news:hAxT6.303$1q2.53994@news.get2net.dk...
> Jens skrev:
> > Do
> > On Error GoTo Slut
> > Print #Fri, List1.Text
> > List1.ListIndex = List1.ListIndex + 1
> > Loop Until List1.ListIndex = List1.ListCount
> >
> > Slut:
>
> Hvad skal din 'On Error GoTo Slut' gøre godt for?
> Forventer du at få fejl, når du skriver til filen?
>
> -------
> Tomas
>
>



Tomas Christiansen (07-06-2001)
Kommentar
Fra : Tomas Christiansen


Dato : 07-06-01 22:27

Ove Steen Hansen skrev:
> Hvis filen skrives til drev A, kan disketten f.eks. blive fuld. Så
> er On Error jo god nok!

Jo, da! ...og en harddisk kan såmænd også blive fuld. ...og alt muligt
andet.

Men prøv lige at se på placeringen af denne On Error og hvad den rent
faktisk gør:

> > > Do
> > > On Error GoTo Slut
> > > Print #Fri, List1.Text
> > > List1.ListIndex = List1.ListIndex + 1
> > > Loop Until List1.ListIndex = List1.ListCount
> > >
> > > Slut:

Den er placeret INDE i løkken.
Rent principielt bør den nok placeres FØR løkken (formentlig bliver VB ikke
ved med at stakke adressen til fejlhandleren for hver løkke-gennemløb, men
det er alligevel ikke smart at udføre en "On Error GoTo Slut" måske 1000
gange, når én er nok).

Dernæst gør den ikke andet end at ignorere fejlen.
Med andre ord: Brugeren får ALDRIG at vide at noget er gået gruelig galt!

Mit bud er at Jens er kommet til at blande to forskellige løsningsmodeller
sammen (en løkke som stopper når en fejl fremkommer og en løkke som tester
på en kontrol-variabel), og mit formål var blot at pointere at løsningen var
lidt uheldigt skruet sammen, så at eksempelvis nybegyndere udi
VB-programmering, ikke blot slugte løsningen "råt".

-------
Tomas



Jens (08-06-2001)
Kommentar
Fra : Jens


Dato : 08-06-01 01:12

Tomas du skriver og skriver men der kommer ingen løsning på problemet fra
dig....

Mvh
Den lidt fornærmet Jens



Tomas Christiansen (08-06-2001)
Kommentar
Fra : Tomas Christiansen


Dato : 08-06-01 08:34

Jens skrev:
> Tomas du skriver og skriver men der kommer ingen løsning på problemet fra
> dig....

Jamen, jeg synes da at det var en udmærket løsning, blot ville jeg måske
lige flytte rundt på et par småting og foretage et par små-ændringer.

Personligt ville jeg nok benytte mig af Ove Steen Hansens løsning, idet den
performer langt bedre, men hvis man gerne vil se listen-boksen "rulle"
samtidig med at indholdet gemmes på disk, er noget i stil med dit forslag
helt anvendeligt.

Her er en lidt mere "forkromet" udgave af dit forslag:


Option Explicit

Private Const INTER_FEJL As Long = 20000

Sub GemFil(ByVal oListBox As ListBox, _
ByVal sFilNavn As String)

Dim iFil As Integer
Dim lGlIndex As Long

On Error GoTo Fejl

IgenIgenIgen:

iFil = FreeFile
Open sFilNavn For Output As #iFil

lGlIndex = oListBox.ListIndex
oListBox.ListIndex = -1
Do While oListBox.ListIndex + 1 < oListBox.ListCount
oListBox.ListIndex = oListBox.ListIndex + 1
Print #iFil, oListBox.Text
Loop

oListBox.ListIndex = lGlIndex
Close #iFil
Exit Sub

Fejl:
If iFil <> 0 Then Close #iFil
If MsgBox("Der opstod en fejl (" & Err.Number & ": " &
Err.Description & _
") ved skrivning til filen """ & sFilNavn & """!" & vbCr & vbCr
& _
"Vil du prøve at gemme filen igen?", vbRetryCancel Or
vbDefaultButton1 _
Or vbCritical, "Kan ikke gemme fil") = vbRetry Then
Resume IgenIgenIgen
Else
Err.Raise INTER_FEJL, "Sub GemFil", "Fejl " & Err.Number & _
": " & Err.Description & " ved skrivning til filen """ & _
sFilNavn & """"
End If
End Sub

Private Sub Command1_Click()
GemFil List1, "d:\work\listbox1.txt"
End Sub

Private Sub Command2_Click()
GemFil List2, "d:\work\listbox2.txt"
End Sub


> Den lidt fornærmet Jens

Det har på intet tidspunkt været min mening at fornærme dig, men når man
skriver noget kode i et forum, hvor mange nybegyndere må forventes at læse
og benytte koden i indlæggene, er det uheldig, hvis der er kode, som vil
give problemer. Hvis du har haft mulighed for at følge indlæg gennem længere
tid, har du også set at jeg har begået "mindre heldige" ting og er blevet
korrekset - og har dermed tilmed LÆRT noget

-------
Tomas



Tomas Christiansen (08-06-2001)
Kommentar
Fra : Tomas Christiansen


Dato : 08-06-01 10:20

Tomas Christiansen skrev:
> Her er en lidt mere "forkromet" udgave af dit forslag:

Desværre kom min Outlook Express til at "knække" nogle linier, så her kommer
koden igen:

Option Explicit

Private Const INTER_FEJL As Long = 20000

Sub GemFil(ByVal oListBox As ListBox, _
ByVal sFilNavn As String)

Dim iFil As Integer
Dim lGlIndex As Long

On Error GoTo Fejl

IgenIgenIgen:

iFil = FreeFile
Open sFilNavn For Output As #iFil

lGlIndex = oListBox.ListIndex
oListBox.ListIndex = -1
Do While oListBox.ListIndex + 1 < oListBox.ListCount
oListBox.ListIndex = oListBox.ListIndex + 1
Print #iFil, oListBox.Text
Loop

oListBox.ListIndex = lGlIndex
Close #iFil
Exit Sub

Fejl:
If iFil <> 0 Then Close #iFil
If MsgBox("Der opstod en fejl (" & Err.Number & ": " & _
Err.Description & ") ved skrivning til filen """ & _
sFilNavn & """!" & vbCr & vbCr & _
"Vil du prøve at gemme filen igen?", vbRetryCancel _
Or vbDefaultButton1 Or vbCritical, _
"Kan ikke gemme fil") = vbRetry Then
Resume IgenIgenIgen
Else
Err.Raise INTER_FEJL, "Sub GemFil", "Fejl " & Err.Number & _
": " & Err.Description & " ved skrivning til filen """ & _
sFilNavn & """"
End If
End Sub

Private Sub Command1_Click()
GemFil List1, "d:\work\listbox1.txt"
End Sub

Private Sub Command2_Click()
GemFil List2, "d:\work\listbox2.txt"
End Sub

Og til dem som er død-irriteret over at jeg laver en indrykning på alle
linier:

1. Copy-paste indholdet til VB.
2. Sørg for at det hele er markeret i VB og tryk derefter på Shift-Tab.

Derved bliver hele den markerede blok rykket en tand til venstre.

-------
Tomas



Ove Steen Hansen (08-06-2001)
Kommentar
Fra : Ove Steen Hansen


Dato : 08-06-01 06:58

Du har da fuldstændig ret. Jeg fandt ikke lige på at checke
placeringen.
/Ove

"Tomas Christiansen" <toc@blikroer.removethis.dk> wrote in message
news:YkST6.322$Mf3.17172@news.get2net.dk...
> Ove Steen Hansen skrev:
> > Hvis filen skrives til drev A, kan disketten f.eks. blive fuld.

> > er On Error jo god nok!
>
> Jo, da! ...og en harddisk kan såmænd også blive fuld. ...og alt
muligt
> andet.
>
> Men prøv lige at se på placeringen af denne On Error og hvad den
rent
> faktisk gør:
>
> > > > Do
> > > > On Error GoTo Slut
> > > > Print #Fri, List1.Text
> > > > List1.ListIndex = List1.ListIndex + 1
> > > > Loop Until List1.ListIndex = List1.ListCount
> > > >
> > > > Slut:
>
> Den er placeret INDE i løkken.
> Rent principielt bør den nok placeres FØR løkken (formentlig
bliver VB ikke
> ved med at stakke adressen til fejlhandleren for hver
løkke-gennemløb, men
> det er alligevel ikke smart at udføre en "On Error GoTo Slut"
måske 1000
> gange, når én er nok).
>
> Dernæst gør den ikke andet end at ignorere fejlen.
> Med andre ord: Brugeren får ALDRIG at vide at noget er gået
gruelig galt!
>
> Mit bud er at Jens er kommet til at blande to forskellige
løsningsmodeller
> sammen (en løkke som stopper når en fejl fremkommer og en løkke
som tester
> på en kontrol-variabel), og mit formål var blot at pointere at
løsningen var
> lidt uheldigt skruet sammen, så at eksempelvis nybegyndere udi
> VB-programmering, ikke blot slugte løsningen "råt".
>
> -------
> Tomas
>
>



Jens (08-06-2001)
Kommentar
Fra : Jens


Dato : 08-06-01 09:33

Hey Tomas

Prøv lige at kikke på din kode igen

Jeg for rød tekst lige omkring her...

Fejl:
If iFil <> 0 Then Close #iFil
If MsgBox("Der opstod en fejl (" & Err.Number & ": " &
Err.Description & _
") ved skrivning til filen """ & sFilNavn & """!" & vbCr & vbCr
& _

Sikke en flot "forkromet" udgave ..... *LOL*




Jens (09-06-2001)
Kommentar
Fra : Jens


Dato : 09-06-01 00:19

Tomas jeg er sikker på at du ikke kan skrive

If MsgBox("Der opstod en fejl (" & Err.Number & ": " &

I din kode !




Tomas Christiansen (09-06-2001)
Kommentar
Fra : Tomas Christiansen


Dato : 09-06-01 21:22

Jens skrev:
> Tomas jeg er sikker på at du ikke kan skrive
>
> If MsgBox("Der opstod en fejl (" & Err.Number & ": " &

Hvad skulle problemet med det være?

Jeg skal måske lige nævne at det naturligvis er testet af inden det blev
"publiseret".

-------
Tomas



Martin - Zeus (06-06-2001)
Kommentar
Fra : Martin - Zeus


Dato : 06-06-01 11:57

Hvis du vil have hver list item på en linje ad gangen kan du gøre sådanne.

Open "C:\liste.txt" For Output As #1
For I = 0 to list.listitems.count
Print #1, list.listitems(I).text
NEXT
Close #1

Hvis de ikke virker er det nok noget med det list prøv dig frem me at skrive
me. så list. så skulle det gerne være listitems så (I) så .text eller
caption o.lign.
¨MVH MARTIN

"Sir" <skriv_til@hotmail.com> skrev i en meddelelse
news:9fkt07$1ef$1@sunsite.dk...
> 'dette virker
>
> Open "C:\liste.txt" For Output As #1
>
> Print #1, Text1.Text
>
> Close #1
>
> ---------------------
>
> 'dette virker ikke hvorfor?
>
> Open "C:\liste.txt" For Output As #1
>
> Print #1, List1 '.???
>
> Close #1
>
>
>



Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste