Join-Methode

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.
bahmady
User
Beiträge: 12
Registriert: Sonntag 30. Mai 2021, 15:59

Hallo zusammen,

im Rahmen meiner Hausarbeit habe ich bestimmte Aufgaben für Textdateien bekommen. Die erste Textdatei soll aus Namen und die Zweite aus Ziffern bestehen. Diese habe ich mit Python geöffnet und mit der Methode Splitlines() in String-Linien aufgeteilt. Als letzte Teilaufgabe sollte ich den Inhalt dieser Textdateien auf folgende Art formatiert darstellen:

Mark Smith Bobby Brown Sue Miller Jenny Igotit
555−1234 555−9876 555−6743 867−5309

Hierzu habe ich mit einer while-Schleife die format-Methode verwendet um die Strings aus den Listen untereinander darzustellen. Nun schaffe ich es nicht, die dadurch erhaltene 4 Elemente mit der join-Methode() miteinander zu verbinden.
Kann mir jemand sagen, wie ich weiterkomme? Bitte keinen eigenen Code verwenden, sondern einfach sagen, wie ich mit meinem Code den letzten Schritt richtig mache., auch wenn mein Code nicht der beste Weg zur Lösung :)

Code: Alles auswählen

d = ""   
b = ["Mark Smith", "Bobby Brown", "Sue Miller", "Jenny Igotit"]
c = ["555−1234", "555−9876","555−6743", "867−5309"]
s = len(b)
i = 0
while i < s:
    z = len(b[i])
    d = '{} \n{}'.format(b[i],c[i])
    print(d)
    i += 1
rogerb
User
Beiträge: 878
Registriert: Dienstag 26. November 2019, 23:24

Hallo bahmady,

bei der join-Methode werden Strings aus einer Liste, Tuple, usw. 'um' einen Trenntext verbunden:

Code: Alles auswählen

text_parts = ["TextpartA", "TextpartB", "TextpartC", "TextpartD"]

complete_text = " *++* ".join(text_parts)

print(complete_text)

Ausgabe:

Code: Alles auswählen

TextpartA *++* TextpartB *++* TextpartC *++* TextpartD
Falls du keinen Trenntext willst, kannst du join() auch so aufrufen:

Code: Alles auswählen

complete_text = "".join(text_parts)
Ausgabe:

Code: Alles auswählen

TextpartATextpartBTextpartCTextpartD
bahmady
User
Beiträge: 12
Registriert: Sonntag 30. Mai 2021, 15:59

Hallo rogerb,

ich habe es bereits auf diese Art und Weise versucht. Leider kriege ich so nicht die gewünschte Ausgabe.
__deets__
User
Beiträge: 14523
Registriert: Mittwoch 14. Oktober 2015, 14:29

Dann zeig *was konkret* du versucht hast. Denn das join an sich geht, hat rogerb ja nun gezeigt.
Sirius3
User
Beiträge: 17738
Registriert: Sonntag 21. Oktober 2012, 17:20

@bahmady: benutze sprechende Variablennamen.
Das erste `d` und `z` werden gar nicht benutzt. Statt einer while-Schleife würde man hier eine for-Schleife verwenden.

Code: Alles auswählen

names = ["Mark Smith", "Bobby Brown", "Sue Miller", "Jenny Igotit"]
numbers = ["555−1234", "555−9876","555−6743", "867−5309"]
for i in range(len(names)):
    text = '{} \n{}'.format(names[i],numbers[i])
    print(text)
Nun ist es aber so, dass man in Python selten über einen Index iteriert, weil man auch direkt die Elemente der Liste verwenden kann:

Code: Alles auswählen

names = ["Mark Smith", "Bobby Brown", "Sue Miller", "Jenny Igotit"]
numbers = ["555−1234", "555−9876","555−6743", "867−5309"]
for name, number in zip(names, numbers):
    print(f'{name} \n{number}')
rogerb
User
Beiträge: 878
Registriert: Dienstag 26. November 2019, 23:24

Da das Problem anscheinend mit der join() Methode gelöst werden soll, währe das die Lösung mit join():

Code: Alles auswählen

persons = ["Mark Smith", "Bobby Brown", "Sue Miller", "Jenny Igotit"]
phone_numbers = ["555−1234", "555−9876","555−6743", "867−5309"]

all_persons = " ".join(persons)
print(all_persons)

all_phone_numbers = " ".join(phone_numbers)
print(all_phone_numbers)
Ausgabe:

Code: Alles auswählen

Mark Smith Bobby Brown Sue Miller Jenny Igotit
555−1234 555−9876 555−6743 867−5309
@bahmady,

Ich kann nur vermuten, aber du hast vielleicht versucht, das Problem mit einer Schleife und der join() - Methode zu lösen.
Das würde nicht funktionieren, da bei der join() -Methode die Schleife von Python im Hintergrund ausgeführt wird und du das fertige Ergebnis bekommst.

Man muss sich also entscheiden, ob man es selbst mit einer Schleife und damit vielleicht mehr Flexibilität, oder kompakt mit der join() - Methode löst.
Benutzeravatar
snafu
User
Beiträge: 6738
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Alternativ zu einem " ".join(), aber wahrscheinlich für Anfänger schwerer zu durchschauen aufgrund der *-Syntax, könnte man hier auch print() die Trennung übernehmen lassen. Dann wird es zu einem simplen:

Code: Alles auswählen

print(*persons)
print(*phone_numbers)
Falls man einen anderen Trenner anstelle des einfachen Leerzeichens haben will, geht das bei print() mittels sep-Parameter:

Code: Alles auswählen

print(*persons, sep="\t")
print(*phone_numbers, sep="\t")
bahmady
User
Beiträge: 12
Registriert: Sonntag 30. Mai 2021, 15:59

Hallo zusammen,

vielen Dank für die Antworten :)

@rogerb
Das Problem an deiner Herangehensweise ist, dass das Format nicht richtig ist. Die Nummern unter den Namen sollen linksbündig an den jeweiligen Namen dran sein(siehe Darstellung vom ersten Post). Hierzu habe ich in einer anderen Aufgabe die Methode ljust() mit der join-Methode kombiniert. Aber hier habe ich es einfach nicht hingekriegt.
Also ich kriege die Daten schon untereinander aber nicht mit dem richtigen Format. Hier ist mein Code nochmal mit sinnvolleren Variabel Namen dargestellt:

Code: Alles auswählen

d = ""   
Names = ["Mark Smith", "Bobby Brown", "Sue Miller", "Jenny Igotit"]
Numbers = ["555−1234", "555−9876","555−6743", "867−5309"]
Names_Length = len(Names)
i = 0
while i < Names_Length:
    z = len(Names[i])
    d = '{} \n{}'.format(Names[i],Numbers[i])
    i += 1 
 
Ich muss irgendwie die Variabel z nutzen, um diese 2 Listen linksbündig zu formatieren. Ich habe übrigens bei euren Antworten auch gesehen, dass man das auch mit einer for-Schleife machen kann. Ich werde das dann in Ruhe ändern, aber das Ergebnis ist ja das gleiche.
Benutzeravatar
__blackjack__
User
Beiträge: 13071
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@bahmady: Das die linksbündig sein zueinander ausgerichtet sein sollen, sieht man im ersten Beitrag nicht, weil HTML so definiert ist, das der Browser aus den mehreren Leerzeichen, die Du da benutzt hast, nur eines in der Anzeige macht. Wenn man sich nicht den Quelltext des Beitrags anschaut, kann man da also nicht aus dem ersten Beitrag herauslesen.

Im das halbwegs robust zu lösen, brauchst Du mindestens zwei Schleifen.

Du musst feststellen wie breit jede ”Spalte” sein muss, und dazu sowohl den Namen, als auch die Telefonnummer auswerten. Denn auch wenn das in den Beispieldaten nicht vorkommt, kann es ja auch sein, dass jemand eine sehr kurzen Namen hat, und die Telefonnummer länger als der Name ist. "Li Wu" oder so etwas beispielsweise.

Und dann musst Du jeden Namen entsprechend breit formatiert auf einer Zeile ausgeben.

Und danach jede Nummer, ebenso.

Die ersten beiden Schritte, ermitteln der Breite der Spalte und Ausgabe des Namens könnte man in einer Schleife zusammenfassen. Übersichtlicher wäre es aber wohl wenn man alle drei Schritte nacheinander durchführt.

Einfache Möglichkeit das mit einer externen Bibliothek zu machen, wäre beispielsweise `rich`:

Code: Alles auswählen

#!/usr/bin/env python3
import rich
from rich.table import Table


def main():
    names = ["Mark Smith", "Bobby Brown", "Sue Miller", "Jenny Igotit"]
    numbers = ["555−1234", "555−9876", "555−6743", "867−5309"]

    table = Table(box=None, show_header=False, pad_edge=False)
    table.add_row(*names)
    table.add_row(*numbers)
    rich.print(table)


if __name__ == "__main__":
    main()
Ausgabe:

Code: Alles auswählen

Mark Smith  Bobby Brown  Sue Miller  Jenny Igotit
555−1234    555−9876     555−6743    867−5309
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
LukeNukem
User
Beiträge: 232
Registriert: Mittwoch 19. Mai 2021, 03:40

Hallo bahmady,
bahmady hat geschrieben: Sonntag 30. Mai 2021, 16:33 im Rahmen meiner Hausarbeit habe ich bestimmte Aufgaben für Textdateien bekommen. Die erste Textdatei soll aus Namen und die Zweite aus Ziffern bestehen.
Okay, ich frage mal ganz offen: ist dieses Datenformat der Textdateien etwas, das Du Dir selbst ausgedacht hast, oder gehört das zur Aufgabe?
bahmady hat geschrieben: Sonntag 30. Mai 2021, 16:33 Diese habe ich mit Python geöffnet und mit der Methode Splitlines() in String-Linien aufgeteilt. Als letzte Teilaufgabe sollte ich den Inhalt dieser Textdateien auf folgende Art formatiert darstellen:

Mark Smith Bobby Brown Sue Miller Jenny Igotit
555−1234 555−9876 555−6743 867−5309
Angesichts Deiner Ausführungen würde ich mal vermuten, daß die Idee der Aufgabe eine andere ist -- nämlich, eine Datenstruktur zu erstellen, bei der es eine Zuordnung von Namen zu Telefonnummern gibt. (Nummern mit "555" deuten auf eine Spezialität des US-amerikanischen Telefonnummernsystems hin, siehe [1].) Das könnte im einfachsten Fall ein Dictionary (dict(), {}) mit einfachen Werten sein, in einem etwas hübscheren Fall eine Liste von Dictionaries oder ein Dictionary von Dictionaries, oder... genau, es gibt viele Möglichkeiten.

Code: Alles auswählen

persons = {"Mark Smith": "555-1234", "Bobby Brown": "555-9876"}  # dict
persons = [["Mark Smith", "555-1234"], ["Bobby Brown", "555-9876"]]  # lol => list of list
persons = {"Mark Smith": {"phone": "555-1234"}, "Bobby Brown": {"number": "555-9876"}}  # dod => dict of dict
persons = [{"name": "Mark Smith", "number": "555-1234"}, {"name": "Bobby Brown", "number": "555-9876"}]  # lod => list of dict
Nun, Du siehst: es gibt viele unterschiedliche Möglichkeiten, um die Daten im Arbeitsspeicher zu halten, und die meisten davon habe ich nicht einmal erwähnt. Warum gibt es so viele Möglichkeiten? Weil jede davon ihre ganz eigenen Stärken und Schwächen hat: manche brauchen mehr Arbeitsspeicher, andere brauchen mehr Prozessorzeit, andere wiederum sind besonders komfortabel und / oder flexibel beim Zugriff auf die Daten, ... es kommt dabei letztlich immer darauf an, wie Dein konkreter Anwendungsfall aussieht, oder anders gesagt: was Du hinterher mit den Daten machen und wie komfortabel Du damit arbeiten möchtest.
bahmady hat geschrieben: Sonntag 30. Mai 2021, 16:33 Hierzu habe ich mit einer while-Schleife
Daß eine while-Schleife hier nicht die Idee ist, haben Dir andere Beitragende bereits erklärt und gezeigt; um über eine Liste oder ein Dictionary zu iterieren, dessen Länge Dir bekannt ist, solltest Du lieber eine for-Schleife benutzen. Das ist viel eleganter.
bahmady hat geschrieben: Sonntag 30. Mai 2021, 16:33

Code: Alles auswählen

d = ""   
b = ["Mark Smith", "Bobby Brown", "Sue Miller", "Jenny Igotit"]
c = ["555−1234", "555−9876","555−6743", "867−5309"]
s = len(b)
i = 0
while i < s:
    z = len(b[i])
    d = '{} \n{}'.format(b[i],c[i])
    print(d)
    i += 1
Kann mir jemand sagen, wie ich weiterkomme?
Naja, was macht denn Dein Code? Genau: er baut extern einen Index, zählt ihn durch... und gibt die Daten dann zeilenweise untereinander aus.. aber, nunja, das ist ja nicht so gewünscht.

Ein sehr wesentliches Problem bei Deinem Ansatz ist, daß Du (noch) nicht verstanden hast, daß so ein Terminal einen Zeilenumbruch hat -- und wenn Du so einen Zeilenumbruch in Deinen Ausgabestrom schreibst, dann erfolgt die weitere Ausgabe auf einer neuen Zeile. Dabei spielt es keine Rolle, ob Du den Zeilenumbruch ausdrücklich ("\n" in Deinem Format-String) oder implizit (durch print()) hinschreibst. Wenn der Zeilenumbruch einmal ausgegeben bist, dann bist Du auf der nächsten Zeile und kannst nichtmehr in die vorherige(n) kommen. (Es gibt da Möglichkeiten, aber... die vergessen wir lieber erstmal.) Deswegen ist der Zeilenumbruch "\n" in Deinem Formatstring leider kontraproduktiv...

Was Du also brauchst, ist etwas, das Deine beiden Datenpunkte nimmt und die Namen in der ersten, die Telefonnummern in der zweiten Zeile ausgibt. Egal, welche Du nun von den von mir oben gezeigten Datenstrukturen Du benutzt: am Ende möchtest Du ein Array von Namen in einer Zeile ausgeben, und in der folgenden Zeile die Telefonnummern... und da ist so ein .join() genau das Mittel der Wahl.

Viel Erfolg, Vergnügen und Glück! ;-)


[1] https://de.wikipedia.org/wiki/555_(Telefonnummer)
bahmady
User
Beiträge: 12
Registriert: Sonntag 30. Mai 2021, 15:59

@LukeNukem

hier ist die Aufgabenstellung:

c)

Wenn paste mit dem Parameter -s aufgerufen wird, z. B.
paste −s names.txt numbers.txt
sollen die Dateien wie folgt untereinander ausgegeben werden:

Mark Smith Bobby Brown Sue Miller Jenny Igotit
555-1234 555-9876 555-6743 867-5309

Implementieren Sie eine Python-Funktion
paste_s(file1, file2)
die die gewünschte Ausgabe liefert. Ergänzen Sie auch das Hauptprogramm, sodass es den
Parameter -s auswertet.
Der Aufruf des Programms ohne -s oder mit dem Parameter -d soll weiterhin funktionieren.
Hinweis: Für jeden String in file1 ermitteln Sie dessen Länge und erstellen einen geeigneten
Format-String. Hängen Sie dann den formatierten String aus file1 an eine String-Variable an.

Ich habe ja schon mehrmals versucht den gewünschten Output mit der Join()-Methode zu schaffen, habe es aber leider nicht hingekriegt.
Ich habe versucht den Hinweis umzusetzten, aber wie gesagt erreiche ich mit der join()-Methode nicht die gewünschte Formatierung...
bahmady
User
Beiträge: 12
Registriert: Sonntag 30. Mai 2021, 15:59

@ __blackjack__

Ich habe deinen Code ausprobiert. Nun erhallte ich bei Import-Anweisung

Code: Alles auswählen

import rich 
from rich.table import Table
die Fehlermeldung "import Rich could not be resolved" bzw. "import rich.table could not be resolved". Muss ich dafür was installieren? Ich habe vorher mit Java programmiert und da haben die import-Anweisungen in der Regel funktioniert.
Sirius3
User
Beiträge: 17738
Registriert: Sonntag 21. Oktober 2012, 17:20

bahmady hat geschrieben: Montag 31. Mai 2021, 14:14 Ich habe ja schon mehrmals versucht den gewünschten Output mit der Join()-Methode zu schaffen, habe es aber leider nicht hingekriegt.
Ich habe versucht den Hinweis umzusetzten, aber wie gesagt erreiche ich mit der join()-Methode nicht die gewünschte Formatierung...
Was hast Du denn genau probiert?

Das `rich`-Paket muß man extra installieren.
LukeNukem
User
Beiträge: 232
Registriert: Mittwoch 19. Mai 2021, 03:40

Hallo bahmady,
bahmady hat geschrieben: Montag 31. Mai 2021, 14:14 @LukeNukem

hier ist die Aufgabenstellung:
[...]
Der Aufruf des Programms ohne -s oder mit dem Parameter -d soll weiterhin funktionieren.
Hinweis: Für jeden String in file1 ermitteln Sie dessen Länge und erstellen einen geeigneten
Format-String. Hängen Sie dann den formatierten String aus file1 an eine String-Variable an.

Ich habe ja schon mehrmals versucht den gewünschten Output mit der Join()-Methode zu schaffen, habe es aber leider nicht hingekriegt.
Ich habe versucht den Hinweis umzusetzten, aber wie gesagt erreiche ich mit der join()-Methode nicht die gewünschte Formatierung...
Ah... Du sollst also aus den Längen der Strings in der "names.txt" einen Formatstring erstellen. Dann ist join() allerdings nicht das Mittel der Wahl, denn die Telefonnummern sollen wohl an den Namen ausgerichtet sein...

Ich beschreibe Dir die Lösung mal grob, schreiben mußt Du sie dann selbst: Du liest die Datei "names.txt" zeilenweise und speicherst die eingelesenen Zeilen in einer Liste "names". Für jede Zeile ermittelst Du zudem die Länge der eingelesenen Zeile und baust mit diesen Längenangaben einen Formatstring auf. Dann gibst Du die Liste "names" mit dem so aufgebauten Fomatstring aus. Dann liest Du die Datei "numbers.txt" zeilenweise in eine zweite Liste "numbers" und gibst diese zweite Liste ebenfalls mit dem zuvor aufgebauten Formatstring aus.

Viel Spaß und Erfolg!
Benutzeravatar
__blackjack__
User
Beiträge: 13071
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@bahmady: Das ist jetzt IMHO ein bisschen verwirrend. Das sieht so aus als sollte ``paste`` nachprogrammiert werden. Dem ist die Länge aber völlig egal, das setzt einfach Tabulatorzeichen zwischen die Daten. Oder was immer man per ``-d`` (``--delimiter``) beim Aufruf angibt.

Handbuch zu den „coreutils“ zum ``paste``-Aufruf: https://www.gnu.org/software/coreutils/ ... ation.html

Und die Beschreibung das man sich nur die Länge von den Werten in `file1` anschauen soll, ist auch komisch, denn wie schon gesagt: Bei den Beispieldaten sind zufällig alle Namen länger als die Nummern. Das muss ja aber nicht so sein, und wenn man das tatsächlich als Spalten setzen soll, dann muss man *alle* Werte in einer Spalte für die breite der Spalte berücksichtigen.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
bahmady
User
Beiträge: 12
Registriert: Sonntag 30. Mai 2021, 15:59

@Sirius3

hier mein Code:

Code: Alles auswählen


b = ["Mark Smith", "Bobby Brown", "Sue Miller", "Jenny Igotit"]
c = ["555−1234", "555−9876","555−6743", "867−5309"]
test1 = " ".join(b)
test2 = " ".join(c)
d = '{} \n{}'.format(test1,test2) 
print(d)

Ich habe ehrlich gesagt schon alle möglichen Varianten versucht. Dies ist die aktuellste. Nun wurde mir vorher schon von mehreren Usern gesagt, dass die Kombinationen mit einer Schleife nicht das sinnvollste sei. Das Problem bei der Ausgabe meines Codes ist, dass die Zahlen nicht richtig formatiert sind (siehe vorherige Antwort). Wie man sehen kann, bin ich noch ein Anfänger im Programmieren. Mir macht es auch an sich Spaß, es ist aber ziemlich frustrierend, wenn man nicht weiterkommt -.-
bahmady
User
Beiträge: 12
Registriert: Sonntag 30. Mai 2021, 15:59

@LukeNukem

Alles klar ich setzte mich dann Abends ran. Nur... was genau ist mit einem "Formatstring" gemeint? Kannst du mir das bitte erklären, bevor ich mich dransetzte? :)

@__blackjack__

Ja das stimmt ich habe die a) und b) im Vergleich dazu recht leicht geschafft. Am Anfang der Aufgabe steht, dass vorausgesetzt wird, dass die Anzahl der Elemente in beiden Listen gleich ist. Wenn die Nummern nun länger als die Namen wären, hätte man bestimmt ein Formatierungsproblem...
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

@bahmady: Mit Nummern länger als Namen ist nicht gemeint, dass es mehr Nummern als Namen gibt, sondern eine Nummer als String eine größere Länge aufweist als der zugehörige Name. Zu Deinen Beispieldaten habe ich "Lin Dan" mit der Nummer "800-8888" hinzugefügt, auf die das zutrifft.

Code: Alles auswählen

names = ["Mark Smith", "Bobby Brown", "Sue Miller", "Lin Dan", "Jenny Igotit"]
numbers = ["555−1234", "555−9876","555−6743", "800-8888", "867−5309"]
Die Ausgabe sollte dann so aussehen:

Code: Alles auswählen

Mark Smith Bobby Brown Sue Miller Lin Dan  Jenny Igotit 
555−1234   555−9876    555−6743   800-8888 867−5309
Mit Format-String ist üblicherweise eine Formatierung gemäß der formatspec Format Specification Mini-Language gemeint. Vermutlich habt ihr das bereits durchgenommen, sonst wäre die Aufgabe etwas sehr fordernd.
Benutzeravatar
__blackjack__
User
Beiträge: 13071
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@bahmady: Wie ist denn bei euch die ``-d``-Option definiert? Einfacher als beim Original ``paste``? Egal ob da nun nur *ein* Zeichen übergeben werden kann, oder wie im Original mehrere Zeichen die zyklisch verwendet werden, muss das ja auch bei Deinem Code berücksichtigt werden.

Unterschiedliche Länge was die Anzahl der Zeilen der Eingabe angeht ist an sich aber auch kein grosses Problem. Das Original ``paste`` füllt die kürzeren Dateien dann einfach mit Leerzeilen auf. Da ist `itertools.zip_longest()` aus der Standardbibliothek hilfreich.

Statt Format-Strings könnte man das auch mit der `ljust()`-Methode auf Zeichenketten lösen.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
bahmady
User
Beiträge: 12
Registriert: Sonntag 30. Mai 2021, 15:59

@LukeNukem

Ich verstehe immernoch nicht wie ich mit den Längenangaben einen Format-String ausgeben soll bzw. was überhaupt mit einem "Format-String" gemeint ist. Und wenn ich die beiden Format-Strings habe, wie soll ich die dann richtig formatiert untereinander ausgeben?
Egal wie ich es versuche, ich komme nicht zur Lösung (ohne die Installation von Bibliotheken). Hier ist mein aktueller Code:

Code: Alles auswählen

#texteins lesen
texteins = open('C:/Users/bah90/Desktop/t1.txt', encoding='utf-8') 
a = texteins.read()
a2 = a.splitlines(False)
texteins.close()
#testzwei lesen
textzwei = open('C:/Users/bah90/Desktop/t2.txt', encoding='utf-8')
b = textzwei.read()
b2 = b.splitlines(False)
textzwei.close()
print(a2)
print(b2)
for i in a2:
    l = len(i)
    print(l)
a2_format = d = '{} \n{}'.format(a2,b2)
print(a2_format)
Wie soll ich l verwenden? Und wie soll ich die format-Methode bitte verwenden? Ich hänge schon mehrere Tage an dieser Kleinigkeit und bin ehrlich gesagt ziemlich verzweifelt...
Antworten