Eine bestimmte Zeile einer Textdatei vorlesen

  • 11 Antworten
  • Neuester Beitrag
Diskutiere Eine bestimmte Zeile einer Textdatei vorlesen im Automatisierung - Tasker im Bereich Tools.
schmetty2

schmetty2

Stammgast
Hallo,

ich habe eine Textdatei mit mehreren Zeilen. Jede Zeile beginnt mit einem anderen Wort. Dieses Wort übergebe ich per AutoVoice in eine Variable. Nun möchte das Tasker die Textdatei nach diesem Wort durchsucht und mir die gesamte Zeile, welche mit diesem Wort beginnt ausgibt. Ich denke das man dies über ein Array lösen kann, aber ich finde dazu keinen Lösungsansatz.
Hat jemand eine Idee?

mfg
 
A

androidkoller

Stammgast
Hallo!

Beispieldatei:
Code:
Erste Zeile
Zweite Zeile
Dritte Zeile
Code:
_ForumTest (2)
   A1: Read File [ File:Download/test.txt To Var:%file ]
   A2: Variable Set [ Name:%linefeed To:
 Do Maths:Off Append:Off ]
   A3: Variable Split [ Name:%file Splitter:%linefeed Delete Base:On ]
   A4: Variable Set [ Name:%query To:Dritte* Do Maths:Off Append:Off ]
   A5: Variable Set [ Name:%line To:%file(#?%query) Do Maths:Off Append:Off ]
   A6: Flash [ Text:%file(%line) Long:Off ]
Bei A2 einfach einmal Enter tippen, um den Zeilenumbruch zu erzeugen.

Grüße, Jürgen.
 
schmetty2

schmetty2

Stammgast
Guten Morgen,

und wieder eine schnelle und perfekte Lösung von Jürgen!!
Super!!
Vielen, Vielen Dank
 
vetzki

vetzki

Philosoph
Etwas weniger "umständlich" (obwohl auch eine schöne lösung, #? kannt ich z.b nicht, Danke dafür) müsste auch so gehen

Test (127)
A1: Run Shell [ Command:grep Dritte /storage/emulated/0/test.txt Timeout (Seconds):0 Use Root:Off Store Output In:%out Store Errors In: Store Result In: ]
A2: Say [ Text:%out Engine:Voice:com.google.android.tts:deu-deu Stream:3 Pitch:5 Speed:5 Respect Audio Focus:On Network:Off Continue Task Immediately:Off ]

(grep ist, zumindest bei neueren android Versionen, in der toolbox dabei, statt Suchwort Dritte kannst du auch die Autovoice variable nehmen)
 
Zuletzt bearbeitet:
schmetty2

schmetty2

Stammgast
Hallo Vetzki,

das ist natürlich etwas weniger aufwändig, aber funktioniert erst ab zwei Buchstaben. Da das "Suchwort" auch mal nur einen Buchstaben enthalten kann, werde ich in diesem Fall Jürgens Version nehmen, welche zwar auch erst mit zwei Buchstaben läuft, aber durch hinzufügen eines Dummys (das zweite Wort in der Zeile) dann das richtige Ergebnis liefert. grep kann das wahrscheinlich auch, allerdings ist mein englisch nicht so, daß ich die Argumente alle deuten kann. Werd' sie mal einzeln durchgehen.

mfg
 
A

androidkoller

Stammgast
Beispieldatei:
Code:
Erste Zeile
Zweite Zeile
Dritte Zeile
V ierte Zeile
Code:
_ForumTest (2)
   A1: Read File [ File:Download/test.txt To Var:%file ]
   A2: Variable Set [ Name:%linefeed To:
Do Maths:Off Append:Off ]
   A3: Variable Split [ Name:%file Splitter:%linefeed Delete Base:On ]
   A4: Variable Set [ Name:%query To:V* Do Maths:Off Append:Off ]
   A5: Variable Set [ Name:%line To:%file(#?%query) Do Maths:Off Append:Off ]
   A6: Flash [ Text:%file(%line) Long:Off ]
Funktioniert auch ohne "Dummy".


Grüße, Jürgen.
 
schmetty2

schmetty2

Stammgast
Hallo,

Jo, ihr habt recht geht auch ohne Dummy: Hab' den Fehler gefunden. Ich hatte nicht die UTF-8 Kodierung für die Textdatei verwendet, weil hier ü,ä ... als Zeichen ausgegeben wurden. Habe jetzt umgestellt auf UTF-8 und ü in ue geändert, jetzt läufts.

Nochmals besten Dank Euch beiden.
 
C

cramu

Dauergast
Also es funktioniert jetzt wie gewünscht?
Sonst hätte ich noch eine weitere Alternative mittels "Search and Replace" anzubieten.
 
schmetty2

schmetty2

Stammgast
Hallo,

ich muß hier nochmal ausgraben.
Bisher wurde ja die gesamte Zeile ausgegeben. Nun brauch ich es etwas abgewandelt, d.h. es soll die Zeile ab einem bestimmten Zeichen (-) ausgegebn werden.

Danke
 
O

oggy

Dauergast
teile die Zeile doch einfach beim "-" und gebe nur den zweiten Teil wieder :)
 
schmetty2

schmetty2

Stammgast
Jo, war auch mein erster Gedanke. Aber ich dachte vllt. gibts ja noch ne elegante Lösung es gleich fertig auszugeben.