Het volgende is er gaande:
Ik heb een array wat bestaat uit regels uit een tekstfile (die heb ik dus ingelezen), dat ziet er als volgt uit:
Iedere nieuwe regel is dus een item in de array, nu wil ik deze array gaan sorteren.
Sorteren is op zich niet het probleem, maar omdat het hier om een string gaat, en ik wil gaan sorteren op een nummer dat in die string staat, word het al wat lastiger.
Hiervoor heb ik zelf al wat bedacht, namelijk ik ga van iedere regel in de betreffende array een object aanmaken. Dit object bevat dan van bijvoorbeeld item 1, alle TAB gescheiden waardes.
Dan maak ik een nieuwe array aan van dit object, en dan defineer ik zelf een IComparer, die dan sorteert op betreffende nummer!
MAAR eigenlijk wil ik niet sorteren op EEN getal, maar op TWEE getallen. Ik heb geen idee hoe ik dat zou moeten doen dan.
Eerst was het zo dat de tekstfile gesorteerd aangelevert werd, maar nu niet meer. Oftewel ik moet mijn inlees klasse gaan herschrijven.
Voordat ik ging aanpassen, ging het als volgt:
- bestand werd ingelezen, en iedere regel werd in een array geplaatst.
- De klasse bevat functies die bijhoudt welke de huidige regel, vorige regel, etc.
- In een andere klasse vraag ik aan de inlees klasse, een regel op (deze regel is een string en is TAB gescheiden)
- deze regel split ik dan weer in een nieuwe array, en aan de hand hiervan maak ik dan weer andere klasses aan zoals:
debiteur
factuurOpdracht
factuurRegel
- en dat was het dan, globaal gezien.
Nu is er dus het probleem dat de file niet meer gesorteerd is, en dat moet dus gebeuren voordat er andere klasses worden aangemaakt.
Maar op bovenstaande manier krijg ik dus een array van objecten, die gesorteerd worden (als ik weet hoe je op 2 getallen kan sorteren), maar dan ben ik er nog niet. Want de inlees klasse moet een TAB gescheiden string retourneren, ipv. een object. Oftewel dan zou ik de objecten array die gesorteerd zijn, weer moeten gaan plaatsen in een string array.
Nu vraag ik me af of dit wel de juiste manier is, en er geen makkelijker/snellere manier is.
Ik hoop dat men mij kan helpen, als er iets niet duidelijk is of je moet weer gegevens hebben? Just ask!
Ik heb een array wat bestaat uit regels uit een tekstfile (die heb ik dus ingelezen), dat ziet er als volgt uit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| * * 222 * * 2122 * R Vink * * 19820509 't Dorpje 23 F 1234OP Oss * * * 1201 * 20030201 6800 710 * * 111 * * 2125 * T de Bruin * * 19820509 Berenlaan 12 A 8907CK Vinkel * * * 1201 * 20030701 -6800 12711 * * 111 * * 2125 * T de Bruin * * 19820509 Berenlaan 12 A 8907CK Vinkel * * * 1201 * 20030501 6800 12711 * * 333 * * 2127 * H Ewijk * * 19820509 AanZeeStraat 278 5678LO Best * * * 1201 * 20030201 6800 12711 * * 111 * * 2129 * Upke van Dupke * * 19820509 UpkeDupkelaan 90 A 9000OR Upke * * * 1201 * 20030301 -6800 12711 * * 111 * * 2129 * Upke van Dupke * * 19820509 UpkeDupkelaan 90 A 9000OR Upke * * * 1203 * 20030301 6800 12711 * * 111 * * 2134 * JW Somers * * 19820509 Wintersweg 45 B 0000OO Getijde * * * 1202 * 20030211 6800 12712 * * 111 * * 2136 * Oma Grutje * * 19820509 Ouwelulleweg 84 A 5467OL Oss * * * 1203 * 20030211 -6800 12712 * * 111 * * 2137 * Opa Grutje * * 19820509 Ouwelulleweg 84 B 5467OL Oss * * * 1201 * 20030301 6800 12712 |
Iedere nieuwe regel is dus een item in de array, nu wil ik deze array gaan sorteren.
Sorteren is op zich niet het probleem, maar omdat het hier om een string gaat, en ik wil gaan sorteren op een nummer dat in die string staat, word het al wat lastiger.
Hiervoor heb ik zelf al wat bedacht, namelijk ik ga van iedere regel in de betreffende array een object aanmaken. Dit object bevat dan van bijvoorbeeld item 1, alle TAB gescheiden waardes.
Dan maak ik een nieuwe array aan van dit object, en dan defineer ik zelf een IComparer, die dan sorteert op betreffende nummer!
MAAR eigenlijk wil ik niet sorteren op EEN getal, maar op TWEE getallen. Ik heb geen idee hoe ik dat zou moeten doen dan.
Eerst was het zo dat de tekstfile gesorteerd aangelevert werd, maar nu niet meer. Oftewel ik moet mijn inlees klasse gaan herschrijven.
Voordat ik ging aanpassen, ging het als volgt:
- bestand werd ingelezen, en iedere regel werd in een array geplaatst.
- De klasse bevat functies die bijhoudt welke de huidige regel, vorige regel, etc.
- In een andere klasse vraag ik aan de inlees klasse, een regel op (deze regel is een string en is TAB gescheiden)
- deze regel split ik dan weer in een nieuwe array, en aan de hand hiervan maak ik dan weer andere klasses aan zoals:
debiteur
factuurOpdracht
factuurRegel
- en dat was het dan, globaal gezien.
Nu is er dus het probleem dat de file niet meer gesorteerd is, en dat moet dus gebeuren voordat er andere klasses worden aangemaakt.
Maar op bovenstaande manier krijg ik dus een array van objecten, die gesorteerd worden (als ik weet hoe je op 2 getallen kan sorteren), maar dan ben ik er nog niet. Want de inlees klasse moet een TAB gescheiden string retourneren, ipv. een object. Oftewel dan zou ik de objecten array die gesorteerd zijn, weer moeten gaan plaatsen in een string array.
Nu vraag ik me af of dit wel de juiste manier is, en er geen makkelijker/snellere manier is.
Ik hoop dat men mij kan helpen, als er iets niet duidelijk is of je moet weer gegevens hebben? Just ask!