Toon posts:

[VB6] ASCII file scheiden en sorteren*

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een opdrachtje gekregen die ik in vb6 moet voltooien, namelijk de volgende: ik moet een .cfg bestand dus een ascii file inlezen en de waarden die daaruit komen moet ik kunnen sorteren.
De gegevens in het ascii bestand zijn, Intern telefoonnummer en de naam van de persoon die dat nummer heeft.
Nou is het probleem dat die gegevens niet allemaal hetzelfde zijn opgemaakt wat het moeilijk maakt om alles te scheiden en te kunnen sorteren.
Ben zelf een vb noob maar ik heb de search hier helemaal doorgespit maar kom niet iets herkenbaars tegen. Hier een stukje van die ascii file:

[LocalSystem]
0=700|Centrale
1=
2=741|Altenrath John
3=793|Arentsen Joke

Dat is nog maar het begin, er zijn hele rare combinaties in dit bestand zoals:


334|Alarm Bedrijfs=1
[BUM-370|Tekenkamer]
2=741|Altenrath John
[BUM-3990|DEUROPENER]
53=872|Schulingkamp Diana

Met mijn noobische vb kennis had ik zoiets gemaakt:

Private Sub Form_Load()

Open "H:/telefoonboek.cfg" For Input As #1

While Not EOF(1)
Line Input #1, Temp
telefoonnummer = Left(Temp, (InStr(Temp, "=")) + 3)
naam = Right(Temp, (InStr(Temp, "=")) + 3)
DataEnvironment1.rstelefoonlijsten.AddNew
DataEnvironment1.rstelefoonlijsten("telefoonnummer") = telefoonnummer
DataEnvironment1.rstelefoonlijsten("naam") = naam
DataEnvironment1.rstelefoonlijsten.Update

Wend
Close #1

End Sub

Mijn vraag is of jullie hier es commentaar op willen geven en advies in de goede richting.

[ Voor 6% gewijzigd door Verwijderd op 25-09-2003 08:57 ]


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Ehm, het lijkt erop dat het character seperated values zijn. Het | teken is het scheidingsteken. Daarnaast geeft een waarde tussen blokhaken [] een volgende ruimte aan. Lijkt me niet zo moeilijk.

Hier moet genoeg over te vinden zijn.

Oops! Google Chrome could not find www.rijks%20museum.nl


Verwijderd

Topicstarter
Dat gaat niet helemaal op want niet alleen het | teken is de scheiding, ook een = teken aan ut begin is een scheiding. Daarna moet je die andere shit er ook nog uit kunnen filteren. Het eerste nummer in die reeks is niet belangrijk het gaat om het nummer na het = teken en de naam achter het | teken.

[ Voor 25% gewijzigd door Verwijderd op 25-09-2003 08:46 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 21-08 22:54
Hoi,

Kan je eens een duidelijke titel verzinnen, dan kan ik hem aanpassen.
Daarnaast kan je ook je post aanpassen, en je code tussen code-tags zetten. Dat maakt het geheel een stuk duidelijker en leesbaarder.

https://fgheysels.github.io/


Verwijderd

Topicstarter
Mijn vraag is dus: is er een andere manier voor het scheiden van die tekens dus 2 x scheiden in 1 regel dan die ik in mn "Topicstart" heb laten zien?

[ Voor 80% gewijzigd door Verwijderd op 25-09-2003 09:06 ]


  • j_du_pee
  • Registratie: Maart 2000
  • Laatst online: 23-09-2024

j_du_pee

du pain, du vin, du pee

je kunt split gebruiken:
code:
1
split("bla=woei","=")

geeft een array("bla", "woei") terug.

nog mooier zal waarschijnlijk met regular expressions zijn.
dat gaat ong. zo:
code:
1
regexp.execute("2=741|Altenrath John", "(.*?)=(.*?)|(.*?)")


id= regexp.match(0)
nr=regexp.match(1)
naam= regexp.match(2)

en dus niet precies zo, maar dan weet je wat je er ongeveer mee kunt en waarnaar je kunt zoeken :)

kaart != map && bottel != fles
Wacht op antwoord


Verwijderd

Topicstarter
Moet ik dan het hele verhaal wat ik eerst had bedacht vergeten? of kan ik die Split functie gewoon erbij gebruiken? :? Had al wel wat geprobeerd met die split namelijk maar kwam er niet echt uit omdat het lastig is om 3 dingen te scheiden vanuit 1 regel. iig thnx voor die reg exp enz.. zal es gaan zoeken of ik daar wat over kan vinden. :7

Verwijderd

Topicstarter
klein *schopje* >:) ut zal de 1nigste x zijn :9
Pagina: 1