like a Bash

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Benutzeravatar
akIra
User
Beiträge: 49
Registriert: Dienstag 3. Dezember 2002, 12:05
Wohnort: Berlin
Kontaktdaten:

like a Bash

Beitragvon akIra » Donnerstag 23. Januar 2003, 10:32

Salût,
ich würde gerne den Input gleich bei der Eingabe mit einer Liste abgleichen, also ungefähr wie in der Bash, wenn man TAB verwendet. raw_input kommt ja wahrscheinlich nicht in Frage, und eine fetch-Key Lösung währe zu umständlich.

Jemand ne Idee ?

Merci,
aki

PS: gibts es ein Python Pendant zu clrscr() ?
joerg
User
Beiträge: 188
Registriert: Samstag 17. August 2002, 17:48
Wohnort: Berlin
Kontaktdaten:

Re: like a Bash

Beitragvon joerg » Donnerstag 23. Januar 2003, 18:25

akIra hat geschrieben:ich würde gerne den Input gleich bei der Eingabe mit einer Liste abgleichen, also ungefähr wie in der Bash, wenn man TAB verwendet. raw_input kommt ja wahrscheinlich nicht in Frage, und eine fetch-Key Lösung währe zu umständlich.


Die Bash benutzt dazu die readline-Bibliothek, und die gibt es auch als Python-Modul, zumindest unter UNIX/Linux. Da kann man auch konfigurieren, wie sie den Abgleich macht. Es gibt auch zusätzlich ein rlcompleter-Modul, welches im interaktiven Python-Interpreter sehr komfortabel ist, da hast Du gleich eine Beispielanwendung.

Zu clrscr fällt mir leider nichts Plattformübergreifendes ein.

Jörg
Benutzeravatar
akIra
User
Beiträge: 49
Registriert: Dienstag 3. Dezember 2002, 12:05
Wohnort: Berlin
Kontaktdaten:

Re: like a Bash

Beitragvon akIra » Freitag 24. Januar 2003, 13:47

yup, dass ist zwar genau das was ich suche, aber "Availability: Unix." : (

Noch ne Idee für M$ Win ?

Ciao,
akI
Benutzeravatar
akIra
User
Beiträge: 49
Registriert: Dienstag 3. Dezember 2002, 12:05
Wohnort: Berlin
Kontaktdaten:

Re: like a bash

Beitragvon akIra » Montag 27. Januar 2003, 13:21

Heya,
here it is...

Code: Alles auswählen

import msvcrt
a = ""
c = ""
l = ["Herbert","Herberd","Hermes"]

def resChar(c):
    global l
    if c[0] == 'o' and len(c) > 2:
        ct = 0
        d = c
        c = c[2:]
        x = "\n"
        #Suche ob die Eingabe in Liste(String) existiert
        for e in l:
            if e[:len(c)] == c:
                x = x + e + "\t"
                ct = ct + 1
        #Wenn etwas gefunden...
        if not x  == '\n':
            if ct == 1:
                msvcrt.putch(" ")
            else:
                print x
                #Alten Ausruck wiederherstellen
                for x in d:
                    msvcrt.putch(x)

while 1:
    a = msvcrt.getche()
    if ord(a) == 13:
        break       
    elif ord(a) == 32:
        c = c + " "
    else:
        c = c + a
    resChar(c)


vielleicht brauchts ja jemand...

Dieses Beispiel soll beim Befehl 'o', die folgenden, möglichen Namen anzeigen...

Kommentare sind erwünscht ! :shock:

Ciao,
akI

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder