Italia
Foro

Alphabetische Sortierung und Dubletten-Eliminierung

 

Hans
Hermann
Hallo!
Gibt es irgendwo eine (possibile simple) Möglichkeit (z. B. wie in Perl), Textzeilen einer TXT-File 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 un (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.
Saluto
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

s4 href='./../../funcion-referencias/xprofan/endwhile/'>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 Cerca 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  
 



Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

7.232 Views

Untitledvor 0 min.
Hans Hermann07.05.2015
Klaus Ernst25.08.2014
RudiB.08.11.2012
Torben Nissen11.03.2012
Di più...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


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