Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
kilix
Anmeldungsdatum: 05.02.2022 Beiträge: 175
|
Verfasst am: 07.02.2022, 23:06 Titel: Sortieren einer Datei |
|
|
Hallo,
ich habe wieder eine Wiederanfängerfrage:
ich habe eine Datei mit etwa 9000 Datensätzen. Jeder Satz enthält 6 Felder fixer Länge mit dem Datentyp String.
Ich möchte diese Datei nach einem Feld sortieren. Dieses Feld ist als String gespeichert, ist 3 Stellen lang und enthält rechtsbündig eine Nummer, die Nummern gehen von 1 bis etwa 450.
Ich möchte nach dem Sort alle Datensätze gleicher Nummer zusammenhängend nacheinander liegend haben. Die Sortierordnung der anderen 5 Felder in den Datensätzen ist mir nicht wichtig.
Kann ich dafür den COMBSORT-Sortieralgorithmus verwenden? In den Beispielen die ich gefunden habe wurde jeweils ein Array sortiert der mit Integers gefüllt ist. Könnte ich da auch einen String-Array definieren der z.B. alle 6 Datenfelder als einen String enthält?
Bitte entschuldigt wenn ich hier blöde Fragen stelle! Ich habe vor mehr als 30 Jahren in Basic programmiert und seither hat sich sehr viel verändert (nicht zuletzt die verwendeten Begriffe). _________________ Grüße
kilix |
|
Nach oben |
|
|
grindstone
Anmeldungsdatum: 03.10.2010 Beiträge: 1211 Wohnort: Ruhrpott
|
Verfasst am: 08.02.2022, 11:52 Titel: |
|
|
Hallo kilix,
auch Strings lassen sich mit den Operatoren <>= vergleichen und somit auch sortieren, allerdings erfolgt der Vergleich zeichenweise von links nach rechts entsprechend dem ASCII - Wert des Zeichens, "20" (als String, ASCII - Wert von "2" = 50) ist danach größer als "100" (ASCII - Wert von "1" = 49). Wenn du die Strings nach dem dargestellten Zahlenwert sortieren möchtest, kannst du sie zum Vergleichen mit VAL() in eine Zahl umwandeln.
Und natürlich kannst du den COMBSORT - Algorithmus verwenden. Ob der zusätzliche Programmieraufwand gegenüber einem einfachen Bubblesort für das einmalige Sortieren von 9000 Datensätzen Sinn macht, sei mal dahingestellt.
Gruß
grindstone _________________ For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!
Zuletzt bearbeitet von grindstone am 08.02.2022, 12:43, insgesamt 2-mal bearbeitet |
|
Nach oben |
|
|
kilix
Anmeldungsdatum: 05.02.2022 Beiträge: 175
|
Verfasst am: 08.02.2022, 12:02 Titel: |
|
|
Hallo grindstone,
danke für die Antwort!
Gedacht habe ich mir das so aber ich bin froh über eine Bestätigung bevor ich lange probieren. Jetzt wo ich mich da neu einarbeite ist ohnehin genug probieren dabei _________________ Grüße
kilix |
|
Nach oben |
|
|
grindstone
Anmeldungsdatum: 03.10.2010 Beiträge: 1211 Wohnort: Ruhrpott
|
Verfasst am: 08.02.2022, 12:44 Titel: |
|
|
Ausgehend von deinen Angaben würde ich folgende Vorgehensweise vorschlagen:
Da alle Datensätze die gleiche Länge haben, kannst du die Datei mit INPUT in ein STRING - Array laden, immer ein Datensatz in einen String.
Zum Sortieren isolierst du bei den beiden Datensätzen, die du vergleichen möchtest, mit MID die entsprechenden Datenfelder, wandelst sie mit VAL in Zahlen um und vertauschst die Datensätze gegebenenfalls mit SWAP, bis alles sortiert ist.
Gruß
grindstone _________________ For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen! |
|
Nach oben |
|
|
kilix
Anmeldungsdatum: 05.02.2022 Beiträge: 175
|
Verfasst am: 08.02.2022, 22:39 Titel: |
|
|
Danke für deine Hinweise!
Das muss ich mir noch genau ansehen weil mir die genannten Befehlen nicht mehr bzw. noch nicht geläufig sind. Sollte ich dazu noch Fragen haben melde ich mich wieder. _________________ Grüße
kilix |
|
Nach oben |
|
|
|