Als erstes muss ein Widget mit Zoom erstellt werden. WIr brauchen ein großes Textfeld für die Notizen, sowie 2 Buttons (oder Bilder). Einer zum hinzufügen einer Notiz und einer zum entfernen. Haben wir das Widget soweit erstellt können wir die Tasks schreiben. Es werden 3 Tasks benötigt. Wieder je einer zum Hinzufügen und Löschen von Notizen und einer zum Aktualisieren der angezeigten Notizen. Dieser soll ausgeführt werden wenn das Textfeld mit den Notizen angeklickt wird.
Kommen wir zu den Tasks. Über einen Dialog eingegebene Notizen sollen automatisch in eine Textdatei gespeichert werden. Danach wird die komplette Datei ausgelesen und deren Inhalt unserem Widget übergeben. Zum kompletten Auslesen habe ich "Read Paragraph" genutzt. Diese Funktion liest einen kompletten Absatz, in unserem Fall die komplette Datei aus. Leider merkt sich "Read Paragraph" wie "Read Line" an welcher Stelle es aufgehört hat die Datei auszulesen und fängt beim nächsten Aufruf an dieser Stelle an. Das heißt also das beim zweiten Aufruf ja schon das Ende der Datei erreicht ist und somit nur "EOF" (End Of File) ausgelesen wird. Um dies zu umgehen lasse ich die Datei immer noch ein zweites mal auslesen, sollte "EOF" ausgelesen worden sein.
Kommen wir nun zum ersten Task:
- Task 1: "Notiz hinzufügen"
- 1. Variable -> Variable Query
- Name: %NOTIZ
- Label: Notiz hinzufügen
- 2. Variable -> Variable Add
- Name: %COUNT
- Value: 1
- 3. File -> Write File
- File: Notizen.txt
- Text: %COUNT) %NOTIZ
- Append: Yes
- 4. File -> Read Paragraph
- File: Notizen.txt
- To Var: %NOTIZEN
- 5. File -> Read Paragraph
- File: Notizen.txt
- To Var: %NOTIZEN
- If %NOTIZEN ~ EOF
- 6. Zoom -> Element Text
- Element Notizen.w / Notiz
- Text: %NOTIZEN
Als nächstes kommt der "Notiz löschen" Task. In einem Popup soll die gewünschte Notiznummer eingegeben werden. wird eine 0 eingegeben werden alle Notizen gelöscht:
- Task 2: "Notiz löschen"
- 1. Variable -> Variable Set
- Name: %COUNT
- To: 0
- 2. Variable -> Variable Query
- Name: %NUMMER
- Label: Welche Notiz entfernen?
- 3. If %NUMMER ~ 0
- 4. File -> Delete File
- File: Notizen.txt
- 5. Zoom -> Element Text
- Element: Notizen.w / Notiz
- Element Text: [Leerzeichen]
- 6. Tasker -> Stop
- 7. Tasker -> End If
- 8. File -> Move File
- From: Notizen.txt
- To: Notizen_old.txt
- 9. Variable -> Variable Add
- Name: %CHECKNR
- Value: 1
- 10. File -> Read Line
- Notizen_old.txt
- To Var: %NOTIZEN
- 11. If %NOTIZEN !~ EOF
- 12. Variable -> Variable Split
- Name: %NOTIZEN
- Splitter: )
- If %CHECKNR !~ %NUMMER
- 13. Variable -> Variable Add
- Name: %COUNT
- Value: 1
- If %CHECKNR !~ %NUMMER
- 14. File -> Write File
- File: Notizen.txt
- Text: %COUNT) %NOTIZEN2
- Append: Yes
- If %CHECKNR !~ %NUMMER
- 15. Tasker -> Goto Action
- Number: 9
- 16. Tasker -> End If
- 17. File -> Delete File
- File: Notizen_old.txt
- 18. File -> Read Paragraph
- File: Notizen.txt
- To Var: %NOTIZEN
- 19. File -> Read Paragraph
- File: Notizen-txt
- To Var: %NOTIZEN
- If %NOTIZEN ~ EOF
- 20. Zoom -> Element Text
- Element: Notizen.w / Notiz
- Text: %NOTIZEN
- 21. Variable -> Variable Set
- Name: %CHECKNR
- To: 0
Als erstes setzen wir unsere Zählvariable zurück. Über ein Popup wird abgefragt welche Notiz gelöscht werden soll. Wird 0 eingegeben wird die ganze Datei gelöscht und das Widget geleert und danach der Task beendet. Ansonsten wird Notizen.txt kopiert und als Notizen_old.txt gespeichert. Danach kann Notizen.txt gelöscht werden.
Die Zählvariable %CHECKNR stellt die die jeweilige Notiznummer dar. Damit soll erkannt werden welche Notiz nun gelöscht werden soll. Nun wird jede Notiz einzeln eingelesen und überprüft ob sie gelöscht werden soll. Wenn nicht wird die Notiz an den Inhalt von Notizen.txt angehängt. Über "EOF" kann wieder erkannt werden ob das Ende der Datei erreicht wurde.
Wenn alle Notizen abgearbeitet wurden. Wird die Notizen.txt komplett eingelesen und der Inhalt an das Widget übergeben. Als letztes wird %CHECKNR wieder auf 0 gesetzt.
Als letztes noch der "Notizen aktualisieren Task". Dieser liest einfach nur die Notizen.txt ein und übergibt den Inhalt an das Widget.
- Task: "Notizen aktualisieren"
- 1. File -> Read Paragraph
- File: Notizen.txt
- To Var: %NOTIZEN
- 2. File -> Read Paragraph
- File: Notizen.txt
- To Var: %NOTIZEN
- If %NOTIZEN ~ EOF
- 3. Zoom -> Element Text
- Element: Notizen.w / Notiz
- Text: %NOTIZEN
Update:
Chillman hat einen Notiz ändern Task erstellt, den ich natürlich niemandem vorenthalten will:
- Task: "Notiz ändern"
- Variable -> Variable Set
- Name: %COUNT
- To: 0
- Variable -> Variable Query
- Name: %ZEILE
- Label: Welche Notiz ändern?
- Input Type: Numeric Integer
- File -> Read Line
- File: Notizen.txt
- Line: %ZEILE
- To Var: %OLDNOTE
- Variable -> Variable Split
- Name: %OLDNOTE
- Splitter: )
- Variable -> Variable Query
- Name: %NEWNOTE
- Label: Notiz ändern
- Default: %OLDNOTE2
- File -> Move
- From: Notizen.txt
- To: Notizen_old.txt
- Variable -> Variable Add
- Name: %CHECKNR
- Value: 1
- File -> Read Line
- File: Notizen_old.txt
- To Var: %NOTIZEN
- Tasker -> If %NOTIZEN !~ EOF
- Variable -> Variable Add
- Name: %COUNT
- Value: 1
- File -> Write File
- File: Notizen.txt
- Text: %NOTIZEN
- Append: Yes
- If %CHECKNR !~ %ZEILE
- File -> Write File
- Notizen.txt
- Text: %ZEILE) %NEWNOTE
- Append: Yes
- If %CHECKNR ~ %ZEILE
- Tasker -> Goto Achtion
- Number: 7
- Tasker -> End If
- File -> Delete File
- File: Notizen_old.txt
- File -> Read Paragraph
- File: Notizen.txt
- To Var: %NOTIZEN
- File -> Read Paragraph
- File: Notizen.txt
- To Var: %NOTIZEN
- If %NOTIZEN ~ EOF
- Zoom -> Element Text
- Element: Notizen.w / Notiz
- Text: %NOTIZEN
- Variable -> Variable Set
- Name: %CHECKNR
- To: 0
Viel Spaß :)
Habe dem widget noch ein “notiz ändern “ button zugefügt.
AntwortenLöschen1. Variable - Variable set
%COUNT zu 0
2. Variable - Variable query
%ZEILE
Label: Welche Zeile soll geändert
werden?
3. File - Read line
notizen_old.txt
Line: %ZEILE
To Var: %OLDNOTE
4. Variable - Variable split
Name: %OLDNOTE
Splitter: )
5. Variable - Variable query
%NEWNOTE
Label: Notiz ändern
Grundeinstellung: %OLDNOTE2
Ab hier geht es genau wie beim “notiz löschen “ mit den tasks 8-14 weiter. Jedoch task 13 ohne if-bedingung und 12 und 14 mit
“if %CHECKNR !~ %ZEILE “
Nun sollten wir im “notiz ändern “ task bei nr. 12 sein.
13. File - Write File
File: notizen.txt
Text: %ZEILE) %NEWNOTE
Append: yes
If: %CHECKNR ~ %ZEILE
14. Tasker - Goto Action
Nr. 7
Ab hier schauen wir wieder in den “notiz löschen “ task und übernehmen alles ab nr. 16
Hoffe es funzt mit der anleitung
Gruß Chillmann
Edit: task nr. 3 muss natürlich notizen.txt anstatt notizen_old.txt einlesen.
AntwortenLöschenCool :) ich werde den Task mal testen wenn ich die Zeit finde und wenn es funktioniert mit in den Post aufnehmen.
AntwortenLöschenDein Task funktioniert, habe aber einen kleinen Fehler gefunden, nach dem Ändern einer Notiz haben alle nicht geänderten Notizen doppelte Nummern bekommen. Deswegen habe ich bei 12. File -> Write File als Text nur %NOTIZEN genommen, dann funktioniert es.
AntwortenLöschenDanke für deinen Task!
War mir damals schon aufgefallen und wollte was zu schreiben, habs dann aber doch vergessen. Der Fehler ist schon im "Notiz löschen" Task ^^ Action 14. Text: %COUNT) %NOTIZEN2 müsste es heissen. Logisch, %NOTIZEN enthält ja noch die Nummer.
AntwortenLöschenAber mit deiner Änderung kann man sich Action 10 aus meinem Task komplett sparen. Die nicht geänderten Zeilen können ja samt Nummer ausgelesen und in die txt eingefügt werden ^^
So führen Fehler zu Verbesserungen hehe^^
Gruß Chillmann
stimmt, habs gleich mal aktualisiert :)
AntwortenLöschenIch habe eine Möglichkeit gefunden das widget mit einer Sprachaufnahme zu versehen:
AntwortenLöschenMan benötigt dazu die app SL4A [siehe: http://tasker.wikidot.com/sl4a ]
Dann kann man scripts ergänzen und diese mit einbinden wie hier vorgeschlagen. [Siehe: http://tasker.wikidot.com/speech]
Wr können dazu den ersten Task kopieren und folgendermaßen anpassen:
Task 1: "Notiz aufnehmen"
1. Variable -> Variable Setzen
Name: %SAVECLIP zu % CLIP
if %CLIP ist gesetzt
2. Sonstiges -> Zwischenablage setzen
Text: ?
3. Sonstiges -> Starte Script
Name: SpeechToClip.py
4. Task -> Warten bis
Sekunden 1
Bis %CLIP !~ ?
-->5. ist wie 1. mit der Möglichkeit das Aufgenommene zu ändern kann aber auch weggelassen werden. bis 6. zu 10. bleibt alles wie gehabt. ab 11 wird wieder neu angefügt:
1. zu 5. Variable -> Variable abfragen
Variable: %NOTIZ
Eingabe Typ: Notiz hinzufügen
> Grundeinstellung: %CLIP < - ÄNDERUNG
2. zu 6. Variable -> Variable Addieren
Name: %COUNT
Value: 1
3. zu 7. Datei -> Schreibe Datei
Datei: Notizen.txt
Text: %COUNT) %NOTIZ
Append: Yes
4. zu 8. Datei-> Lese Paragraph
Datei: Notizen.txt
To Var: %NOTIZEN
5. zu 9. Datei -> Lese Paragraph
Datei: Notizen.txt
To Var: %NOTIZEN
If %NOTIZEN ~ EOF
6. zu 10. Zoom -> Element Text
Element Notizen.w / Notiz
Text: %NOTIZEN
11. Sonstiges -> Zwischenablage setzen
%SAVECLIP
if: %SAVECLIP ist gesetzt
12. Variable -> Variable Lösche
%SAVECLIP
Das ganze noch mit nem bild oder button auf das ZOOM-Widget verknüpft und los gehts. Viel spaß damit. FERDSCH.
Hallo!
AntwortenLöschenIch hoffe, mir kann noch jemand helfen, der letzte Beitrag hier liegt ja schon etwas zurück ...
Erstmal DANKE! Es funktioniert fantastisch! Klasse Widget.
Ich habe allerdings einen Fehler eingebaut, der permanent auftritt, aber an sich keine Schwierigkeiten verursacht:
Nach dem letzten Notizeintrag erscheint immer die Nachricht ": doesn't exist"
Ich hoffe ihr könnt mir helfen. Wo liegt der Fehler? Ich verzweifle hier gerade ....
I am very happy with what you wrote
AntwortenLöschenThis is really one of the articles that I think is very interesting in terms of its contents
Thank you very much for sharing this pretty good information
Tenggorokan Terasa Ada Yang Mengganjal Obat Flek Paru-Paru Pada Anak-Anak Obat Alami untuk Menghilangkan Balas Bogo Obat Herpes Kulit Di Apotek Solusi Terbaik untuk Menurunkan Kolesterol Tinggi Cara Menghilangkan Budug serta Bekas nya Obat Penebalan Dinding Rahim Obat Budug Pengobatan Alami Kaligata Penyebab Benjolan Di Payudara