Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Sortieren einer Datei

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
kilix



Anmeldungsdatum: 05.02.2022
Beiträge: 175

BeitragVerfasst am: 07.02.2022, 22:06    Titel: Sortieren einer Datei Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
grindstone



Anmeldungsdatum: 03.10.2010
Beiträge: 1208
Wohnort: Ruhrpott

BeitragVerfasst am: 08.02.2022, 10:52    Titel: Antworten mit Zitat

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. zwinkern

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, 11:43, insgesamt 2-mal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
kilix



Anmeldungsdatum: 05.02.2022
Beiträge: 175

BeitragVerfasst am: 08.02.2022, 11:02    Titel: Antworten mit Zitat

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 lächeln
_________________
Grüße
kilix
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
grindstone



Anmeldungsdatum: 03.10.2010
Beiträge: 1208
Wohnort: Ruhrpott

BeitragVerfasst am: 08.02.2022, 11:44    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
kilix



Anmeldungsdatum: 05.02.2022
Beiträge: 175

BeitragVerfasst am: 08.02.2022, 21:39    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz