Forum: PC-Programmierung Texteinträge Alphabetisch sortieren


von Helmut (Gast)


Lesenswert?

Hallo Experten,
ich steh vor der Aufgabe Einträge in einem Textfile zu alphabetisch zu 
sortieren. Die Einträge sehen wie folgt aus
100A4
299F3
33G1
und so weiter.
Ich möchte das Ganze mit C# machen Allerdings habe ich keine Ahnung wie 
man so was elegant löst.


Vielen Dank
Gruß
Helmut

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Falls du Linux verwendest gib ein:
sort eingabe.txt -o ausgabe.txt

von Helmut (Gast)


Lesenswert?

nein ich verwende Windows.
Und ich möchte dazu ein Programm mit C# schreiben

gruß

Helmut

von Stefan (Gast)


Lesenswert?

meine erste idee wäre es, dass du die textfile ausliest und in eine 
listbox schreibst. also zeile für zeile. die listbox lässt sich dann 
sortieren. ist vermutlich nicht sehr elegant, aber sollte im normalfall 
funktionieren

von Arc N. (arc)


Lesenswert?

Helmut schrieb:
> nein ich verwende Windows.
> Und ich möchte dazu ein Programm mit C# schreiben
>
> gruß
>
> Helmut

Wenn das nicht extrem große Dateien sind, nur zwei Tips:
1. http://msdn.microsoft.com/en-us/library/2c4w9x9x.aspx
und
http://msdn.microsoft.com/en-us/library/92e05ft3.aspx
2. http://msdn.microsoft.com/en-us/library/system.array_methods.aspx
Raus kommt, ohne Extras, ein Dreizeiler...

von Helmut (Gast)


Lesenswert?

Wäre eine Lösung aber ich stelle mir das ein wenig eleganter vor.
Trotzdem Danke.

Helmut

von burschi (Gast)


Lesenswert?

Es gibt wohl auch vorgefertigte oder schellere Sachen dafür bei C#, aber 
hier ist sicher etwas, was dich interessieren könnte:
http://en.wikibooks.org/wiki/Algorithm_Implementation/Sorting/Radix_sort

von Arc N. (arc)


Lesenswert?

Helmut schrieb:
> Wäre eine Lösung aber ich stelle mir das ein wenig eleganter vor.
> Trotzdem Danke.
>
> Helmut

Was soll denn da
1
var lines = File.ReadAllLines(fileName);
2
Array.Sort(lines);
3
File.WriteAllLines("Out"+fileName, lines);
noch "eleganter" werden?
Oder soll's irgendein externer Mergesort oder angepasster Heapsort 
werden?

von Guru (Gast)


Lesenswert?

Diese "elegant" Kriterium ist eines der meist missbrauchten und 
verschiedentlich verstandenen, die es gibt. Solagen wir nicht wissen was 
"Du" darunter verstehst, können wir endlich herumraten, bis wir es 
endlich durch Zufall treffen. Also, was meinst Du mit "elegant"?

von Simon A. (testnetz)


Lesenswert?

Ich habe das schon einmal programmiert, allerdings in C.
Der Sortieralgorithmus nennt sich Bubble Sort.

http://de.wikipedia.org/wiki/Bubblesort

von Arc N. (arc)


Lesenswert?

Simon Abler schrieb:
> Ich habe das schon einmal programmiert, allerdings in C.
> Der Sortieralgorithmus nennt sich Bubble Sort.
>
> http://de.wikipedia.org/wiki/Bubblesort

Entweder fehlt da die Ironiekennzeichnung oder die Daten sind sortiert, 
dann wäre das ganze etwas sinnlos...
In den restlichen Fällen ist Bubblesort der unbrauchbarste Algorithmus 
den es gibt.
(scnr)

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

hier noch eine "elegante" Version der Implementierung von Bubblesort:

http://brainweich.de/?p=993

von Helmut (Gast)


Lesenswert?

Arc Net schrieb:
> Helmut schrieb:
>> Wäre eine Lösung aber ich stelle mir das ein wenig eleganter vor.
>> Trotzdem Danke.
>>
>> Helmut
>
> Was soll denn davar lines = File.ReadAllLines(fileName);
> Array.Sort(lines);
> File.WriteAllLines("Out"+fileName, lines);
> noch "eleganter" werden?
> Oder soll's irgendein externer Mergesort oder angepasster Heapsort
> werden?

Danke für Deine Hilfe

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.