Page 1 of 1

Einzelne Textzeilen aus mehrzeiligen Text selektieren

Posted: 29 Jul 2016 09:40
by kukuwaja
Hallo an alle Forenteilnehmer,

vorweg möchte ich mich bei den Programmieren dieser App bedanken. Ein gelungenes Werk. :!:

Als Anfänger stell ich mich noch etwas schwer mit den ganzen Möglichkeiten an. Daher meine Frage.

Aus einem mehrzeiligen Text möchte ich per Zufall eine einzelne Textzeile selektieren und vorlesen lassen. Hintergrund ist, eine sich ändernde Begrüssung bei einer Bluetoothverbindung zu erzeugen. Realisieren konnte ich es soweit, das ich aus mehrere Textdateien, mit unterschiedlichen Inhalten, eine von denen per Zufall auswähle und damit eine Variable initialisiere und dem Sprachbefehl übergebe. Nur für jede Ansage eine separate Textdatei ist mir zu unpraktisch und wird unübersichtlich.

Für sachdienliche Hinweise winkt eine große Dankbarkeit als Belohnung ;)

Re: Einzelne Textzeilen aus mehrzeiligen Text selektieren

Posted: 29 Jul 2016 11:59
by pmgnt
Man könnte verschiedene Sätze durch ein komma trennen.
Z.b

Textfile Inhalt:

line 1,
line 2,
line 3,
line 4,
line 5
...

Action: Initialisiere variable Text Datei. ( Resultat in variable file_text gespeichert)


Action Script:
text = getRandomElement(split(file_text, ","))

Re: Einzelne Textzeilen aus mehrzeiligen Text selektieren

Posted: 01 Aug 2016 10:22
by kukuwaja
pmgnt wrote:Man könnte verschiedene Sätze durch ein komma trennen.
Z.b

Textfile Inhalt:

line 1,
line 2,
line 3,
line 4,
line 5
...

Action: Initialisiere variable Text Datei. ( Resultat in variable file_text gespeichert)


PERFEKT! Vielen Dank für den "Schubs" in die richtige Richtung. :D

Action Script:
text = getRandomElement(split(file_text, ","))

Re: Einzelne Textzeilen aus mehrzeiligen Text selektieren

Posted: 01 Aug 2016 20:11
by pmgnt
Gern geschehen!
Man kann das ganze noch etwas verfeinern..

- newline character als trenner (benötigt also kein komma)
- zuletzt verwendetes Element in globaler variable speichern und mit aktuellem Element vergleichen und ggf. neues Element wählen. Somit wird der gleiche.Satz nicht mehrmals hintereinander ausgewählt.


text = getRandomElement(split(file_text, "\\n"));

while (text == global_text_old)
{ text = getRandomElement(split(file_text, "\\n")) }

global_text_old = text;