[VB6.0] gegevens uit database uitvoeren naar .txt file

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • white_panther
  • Registratie: Januari 2001
  • Laatst online: 30-04-2023

white_panther

Campzone here we come....

Topicstarter
Ik ben bezig om een bestel formulier te maken, dat lukt op zich wel, maar het probleem zit hem in het verzenden via de mail.

Nou wil ik een gedeelte van de bestellingen met order nummer X exporteren naar een tekst bestand.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    Text1 = MSFlexGrid1.TextMatrix(rij1, col5)
    Text2 = MSFlexGrid1.TextMatrix(rij1, col6)
    Text3 = MSFlexGrid1.TextMatrix(rij1, col7)
    Text4 = MSFlexGrid1.TextMatrix(rij2, col5)
    Text5 = MSFlexGrid1.TextMatrix(rij2, col6)
    Text6 = MSFlexGrid1.TextMatrix(rij2, col7)
    Text7 = MSFlexGrid1.TextMatrix(rij3, col5)
    Text8 = MSFlexGrid1.TextMatrix(rij3, col6)
    text9 = MSFlexGrid1.TextMatrix(rij3, col7)

    Open "Order.txt" For Output As #1
    Print #1, "Model", "Size", "Heel"
    Print #1, Text1, Text2, Text3
    Print #1, Text4, Text5, Text6
    Print #1, Text7, Text8, text9
    Close #1


Dit is een gedeelte van de code, het probleem zit hem erin dat de eerste 2 print #1 opdrachten wel naar het bestand worden geschreven maar de verdere regels niet.
Denk ik nou te omslachtig, of is dit helemaal niet mogenlijk wat ik wil.

achja wat zal ik zeggen .................. ik zeg wel niks............... voor de handleiding van dpad klik hier


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Omslachtig is het sowieso nogal. Los van dat je veel makkelijker arrays kan gebruiken in plaats van Text1, Text2 etc. (dus dan krijg je Text(x)) en dat die variabelen sowieso overbodig zijn omdat je in je print statements ook rechtstreeks de matrix kunt gebruiken mis ik ook nogal het gebruik van een loop.


code:
1
2
3
4
5
6
7
8
9
10
FF = FreeFile
Open "Order.txt" For Output As #FF
Print #FF, "Model", "Size", "Heel"
For R = 1 to 3
    For C = 5 to 7
      Print #FF, MyMatrix(R, C), ;    'En ja, die komma en puntkomma hoort er achter ;-)
    Next
    Print #FF,
Next
Close #FF


Die puntkomma op 't eind van de regel voorkomt dat er een newline wordt geschreven en de komma zorgt voor een tab die je tussen de waardes zet, net als a, b, c 3 tab-gescheiden velden zou schrijven (Hier ook nog wat Leesvoer).

Tot slot: Gebruik liever FreeFile i.p.v. hardcoded file handles (#1).

[ Voor 84% gewijzigd door RobIII op 28-05-2009 21:35 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • white_panther
  • Registratie: Januari 2001
  • Laatst online: 30-04-2023

white_panther

Campzone here we come....

Topicstarter
dank je freefile is inderdaad makelijker :)

ik ga nog ff puzelen hoe het precies werkt, zodat ik het later nog eens kan gebruiken

bedankt

achja wat zal ik zeggen .................. ik zeg wel niks............... voor de handleiding van dpad klik hier


Acties:
  • 0 Henk 'm!

  • white_panther
  • Registratie: Januari 2001
  • Laatst online: 30-04-2023

white_panther

Campzone here we come....

Topicstarter
Even om het goed af te sluiten, dit is de werkende code geworden:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
   Dim introw As Integer
    FileName = "v:\order.txt"
    ifreefile = FreeFile
    Open FileName For Output As ifreefile
    introw = MSFlexGrid1.Rows
    Print #ifreefile, "Model", "Size", "Heel"
    For I = 2 To introw
    For j = 6 To 8
        With MSFlexGrid1
        Print #ifreefile, .TextMatrix(I - 1, j - 1), ;
        End With
    Next
    Print #ifreefile,
    Next
    MsgBox "Bestand is succesvol opgeslagen"
    Close #ifreefile

achja wat zal ik zeggen .................. ik zeg wel niks............... voor de handleiding van dpad klik hier