Toon posts:

[VB6] Getallen sorteren Groot->Klein

Pagina: 1
Acties:
  • 124 views sinds 30-01-2008

Verwijderd

Topicstarter
Ik heb in een TXT file een stuk of 50 getallen onder elkaar staan, bijv:

2000
2333
5654
34543
234
etc.

Nou wil ik dat mijn programma deze van groot naar klein wegschrijft in de output file. Nou heb ik wel een maniertje bedacht, hier een klein stukje van de code:

line input #1,GrootsteGetal
do while not eof(1)
line input #1,getal
if getal < GrootsteGetal then print #2, getal
if getal > GrootsteGetal then GrootsteGetal=getal
loop

Op deze manier heb ik dus steeds het grootste getal, die ik bijv in file #3 kan wegschrijven. Maar er kunnen ook 2 dezelfde cijfers tussen staan, waardoor die worden overgeslagen. En aangezien deze code voor 100 getallen 100x moet worden uitgevoerd, betekend dit dat dit redelijk traag werkt.
:Z
Weet iemand hier een handige oplossing voor?
Het aantal getallen in mijn file verschilt per keer. _/-\o_

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 25-08 12:28

Janoz

Moderator Devschuur®

!litemod

En je hebt op internet nog helemaal niks kunnen vinden over het onderwerp sorteren?

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Topicstarter
Jawel, over van een ListBox de Sorted op TRUE te zetten, maar deze sorteert de getallen 100, 123, 2, 34 zo:

100
123
2
34

Dus dat werkt ook niet helemaal :(
Weet iemand hier misschien wel iets van?

Verwijderd

Ok stappen plan.

1) Lees getallen uit bestand in array
2) sorteer array
3) schrijf array naar bestand
4) have a beer

  • Tim Schuhmacher
  • Registratie: Januari 2000
  • Laatst online: 24-08 18:41

Tim Schuhmacher

abasios

http://algoritme.pagina.nl/
Daar staan wel sorteeralgoritmen

  • Minos111
  • Registratie: Augustus 2002
  • Laatst online: 05-03-2012
Verwijderd schreef op 19 januari 2003 @ 16:48:
Jawel, over van een ListBox de Sorted op TRUE te zetten, maar deze sorteert de getallen 100, 123, 2, 34 zo:

100
123
2
34

Dus dat werkt ook niet helemaal :(
Weet iemand hier misschien wel iets van?
functie 1: lees de getallen in in een array en specificeer een variabele waarin het maximale aantal cijfers (karakters) van de getallen wordt gezet. (in het bovenstaande voorbeeld: 3)

functie 2: converteer alle getallen naar strings en zet er het benodigde aantal nullen voor. (in het bovenstaande voorbeeld: '100', '123', '002', '034')

functie 3: sorteer je array en maak daarna weer integers van de string-getallen in je array.

Verwijderd

Topicstarter
Sorry, maar ik snap nog niet hoe ik dit precies kan doen... |:(
In ieder geval bedankt.

Verwijderd

met welke stap van mijn 4 stappen plan heb je problemen dan?

Verwijderd

Je moet die listbox op sorted zetten, daarna een Lst1.refresh... daarna loop je hem met een :
code:
1
2
3
4
For x=1 to lst1.listcount - 1
   richtxt.seltext=lst1.list(x)
next x
richtxt.savefile "blaaat.txt"


Doe het via een richtxt omdat te moe ben om die input bla bla bla in te vullen.
Je kan natuurlijk ook de listbox leeg maken, en weer helemaal vullen bij ieder nieuw getal. Ik weet niet of het vaak voorkomt dat er een getal bij komt, dan is dit een slechte oplossing.

Succes iig

[ Voor 3% gewijzigd door Verwijderd op 20-01-2003 00:44 . Reden: [vb]tags werken niet? ]


  • Korben
  • Registratie: Januari 2001
  • Laatst online: 14-11-2025

Korben

() => {};

Op de link die al is gegeven, http://algoritme.pagina.nl staan bij de derde kop van boven, rechts, een bonk sorteeralgoritmes. Zoek daar es bij.

.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?


  • whoami
  • Registratie: December 2000
  • Laatst online: 22:42
Doorlees nog eens rustig het topic.
Neem de gegeven links eens door.
Doe wat Yarvieh zegt.

Kant en klare oplossingen krijg je hier maar zelden of nooit
Succes. ;)

https://fgheysels.github.io/

Pagina: 1

Dit topic is gesloten.