Deutsch
Forum

Alphabetische Sortierung und Dubletten-Eliminierung

 

Hans
Hermann
Hallo!
Gibt es irgendwo eine (möglichst simple) Möglichkeit (z. B. wie in Perl), Textzeilen einer TXT-Datei alphabetisch zu sortieren und gleichzeitig auf Doppel-Zeilen zu überprüfen und zu bereinigen?
Vielen Dank!
Hans
 
22.10.2011  
 




Jörg
Sellmeyer
Hallo Hans,

Ich würde die Textdatei in eine (unsichtbare) sortierte Listbox einladen und dann mit GetString die einzelnen Zeilen vergleichen. Dabei brauchst Du dann immer nur benachbarte Zeilen vergleichen und entdeckte Doppelte rausschmeißen.
Gruß
Jörg
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
22.10.2011  
 



Jo: [...] 
 
23.10.2011  
 




Julian
Schmidt
Hier ein Quelltext zu Jörgs Vorschlag...
KompilierenMarkierenSeparieren
Proc AddTextFileToListBox

    Parameters liste&,file$,reset%
    Declare tempedit&,size&,anzahlzeilen%,i%,buf#
    FindFirst$(file$)
    Case %IOResult: Return 0
    Case reset%: SendMessage(liste&,$0184,0,0)'ListBox je nach Option leeren
    Let tempedit&=Create("MultiEdit",GetActiveWindow(),"",0,0,0,1)
    Set("FileMode",0)
    Assign #1,file$
    OpenRW #1
    size&=GetFileSize(#1)
    Dim buf#,size&+1
    BlockRead(#1,buf#,0,size&)' Dateiinhalt einlesen...
    CloseRW #1
    SendMessage(tempedit&,$0C,0,buf#)'... und in  temp. Edit schreiben
    anzahlzeilen%=SendMessage(tempedit&,$0BA,0,0)
    Dispose buf#

    While i%<anzahlzeilen%

        AddString(liste&,GetString$(tempedit&,i%))
        Inc i%

    Endwhile

    DestroyWindow(tempedit&)' temp. Edit freigeben
    Return 1

EndProc

Proc Delete_Double_Entries

    Parameters liste&
    var counter%=0

    while counter%<>Getcount(liste&)-1

        if GetString$(liste&,counter%)=GetString$(liste&,counter%+1)

            DeleteString(liste&,counter%)

        else

            counter%=counter%+1

        Endif

    Endwhile

    Return 1

EndProc

Cls
var listbox&=Create("ListBox",%hwnd,1,0,30,width(%hwnd),height(%hwnd)-30)
AddTextFileToListBox(listbox&,$WinPath+"\WIN.INI",1)

whileloop 10

    AddString(listbox&,"Das ist ein Test")

Endwhile

print "Win.ini + 10 mal den String 'Das ist ein Test' eingeladen..."
waitinput
Delete_Double_Entries(listbox&)
print "Doppelte Listebox-Einträge entfernt"

While 1

    WaitInput

Endwhile


Die Prozedur AddTextFileToListBox stammt allgemein aus [...] 

[OFFTOPIC]hmm...If war schneller [/OFFTOPIC]


LG

Julian57
 
XProfan X2
Win7 Home Premium, SP1, AMD Athlon(tm) II Neo K125 Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
23.10.2011  
 



iF (23.10.11)


Einfach bei der Suche oben mal "doppel" eingeben.

@Julian: Ganz schön umständlich.

Lieber rein mit input in Verbindung mit addString oder doch fgc (file_get_contents) ( [...]  ) und dann explode und MoveArrToList.
 
23.10.2011  
 



Herzlichen Dank!!

Hans
 
23.10.2011  
 




Julian
Schmidt
iF (23.10.11)

@Julian: Ganz schön umständlich.
Lieber rein mit input in Verbindung mit addString oder doch fgc (file_get_contents) ( [...]  ) und dann explode und MoveArrToList.


Ich sag ja ich hab die Prozedur einfach nur übernommen.....[...] 
Kann schon sein das es leichter geht. War eben ein alter Quelltext
 
XProfan X2
Win7 Home Premium, SP1, AMD Athlon(tm) II Neo K125 Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
23.10.2011  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

7.200 Betrachtungen

Unbenanntvor 0 min.
Hans Hermann07.05.2015
Klaus Ernst25.08.2014
RudiB.08.11.2012
Torben Nissen11.03.2012
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie