txt. Datei in Ausgabefenster darstellen

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
Merll
User
Beiträge: 3
Registriert: Donnerstag 29. Juni 2017, 21:05

Servus!

ich versuche die ganze zeit eine txt. Datei im Ausgabefenster ausgeben zu lassen leider bekomme ich das nicht so gut hin die infos werden in der Konsole dargestellt aber leider nicht weiter an das Ausgabefeld gegeben.... kann mir vielleicht jemand helfen ?

LG!

Code: Alles auswählen

def. öffnenderauftragsliste():
	daten2 = open("D:/User.........txt","r")
	print (daten2.read())
	Ausgabefenster. insert (END, daten2)
	daten2.close
danke schon mal!
Zuletzt geändert von Anonymous am Dienstag 4. Juli 2017, 23:34, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Codebox-Tags gesetzt.
BlackJack

@Merll: Das ist nicht der Code den Du laufen lässt, denn das kommt nicht am Compiler vorbei.

Wenn Dein tatsächlicher Code so ähnlich aussieht: Du gibst per `print()` den Rückgaberwert der `read()`-Methode aus und im Textfeld das Dateiobjekt. Das ist ganz offensichtlich nicht das gleiche. Du musst auch im Textfeld den Inhalt der Datei ausgeben und nicht das Dateiobjekt. Dabei musst Du berücksichtigen das Du `read()` nicht einfach so zwei mal hintereinander aufrufen kannst, weil das den Zustand des Dateiobjekts verändert. Im besonderen den ”Zeiger” an das Ende der Datei setzt. Wenn Du den Dateiinhalt zweimal verwenden möchtest, bindest Du den Rückgabwert von `read()` am besten an einen Namen und verwendest den dann zwei mal.

Was soll die 2 beim Namen `daten2`?

Du solltest die Datei auch wieder schliessen — dazu muss man die `close()`-Methode auch *aufrufen*. Oder aber Du verwendest die ``with``-Anweisung zusammen mit `open()`.

`Ausgabefenster` kommt einfach so magisch aus dem nichts — das sollte nicht sein. Eine Funktion sollte nur Werte verwenden die diese Funktion als Argumente betreten haben. Ausnahme: Konstanten. Zudem sollte `Ausgabefenster` klein geschrieben werden, denn es ist keine Klasse. Beim Funktionsnamen fehlen UnterstrichezwischendenWörterndamitmandenbesserlesenkann. Der Name ist auch ein bisschen ungewöhnlich ausgedrückt. Üblicher wäre `aufragsliste_oeffnen()`.

Für eine sinnvolle GUI-Programmierung bei der man am Ende auch noch durchsteigt, braucht man objektorientierte Programmierung (OOP).
Antworten