Einzelne Wörter aus Textdatei auslesen

muzklash

Grünschnabel
Hallo zusammen, ich hoffe ihr könnt mir helfen.
Ich habe eine Textdatei (text.txt) und die sieht so aus:
Code:
variable=hallo zusammen, ich bin neu hier.
In der .fla habe ich im 1. Frame folgenden Code:
Code:
this.loadVariables("text.txt");
Das funktioniert Prima. Aber jetzt will ich das es nur die Wörter die ein "i" besitzen ausgegeben werden. Ist das realisierbar? Wenn ja, wie? Ich wäre dankbar für Hilfe!

Muzklash
 
Hi,

Code:
var words = variable.split(" ");

for (var i=0; i<words.length; i++) {
    if (words[i].indexOf("i") >= 0) trace(words[i] + " hat ein i");
}

Ich würde Dir unabhängig davon die Verwendung des LoadVars-Objektes statt der loadVariables-Methode ans Herz legen, da Du damit Kontrolle über den Zeitpunkt hast, zu dem die Daten verfügbar sind.

Gruß
.
 
Hi,

diesen Code musst Du an eine Stelle anfügen, zu der die Variable "variable" schon bekannt ist (sprich: die Textdatei geladen ist).

Mein Code gibt alle Wörter, die ein "i" enthalten per trace aus - was Du letztendlich mit dieser Funktion machen willst, kann ich natürlich nicht wissen - daher ist der Code auch nicht einfach zum Einfügen, sondern als Erklärung gedacht. ;)

Gruß
.
 
Hallo
Ich will ja nicht aufdringlich sein ( ;) ) , aber irgendwie verstehe ich das nicht ganz..

Im ersten Frame meiner *.fla steht folgendes:
Code:
this.loadVariables("text.txt");
var words = variable.split(" ");

for (var i=0; i<words.length; i++) {
    if (words[i].indexOf("i") >= 0) trace(words[i] + " hat ein i");
}

Wenn ich nun die Datei teste, passiert nichts. Was mache ich falsch? Danke für die Hilfe und die Geduld, bin leider noch nicht soo erfahren in Sachen Flash :) .


Muzklash
 
Wie gesagt: An dieser Stelle ist die Variable noch nicht gesetzt, da "loadVariables" nicht darauf wartet, bis alle Daten geladen sind.

Deshalb habe ich Dir das LoadVars-Objekt empfohlen, mit dem der Code so aussähe:
Code:
var lv = new LoadVars();

lv.onLoad = function() {
  // hier sind die Daten geladen!
  showWords(this.variable);
}

lv.load("meintext.txt");

function showWords(str) {
  var words = str.split(" ");
  for (var i=0; i<words.length; i++) {
      if (words[i].indexOf("i") >= 0) trace(words[i] + " hat ein i");
  }
}

Gruß
.
 
Danke! Jetzt funktioniert alles Prima! Super schnelle Hilfe hier im Forum, respekt! ^^

Nun gibt es aber wieder eine neue Frage:

Nun habe ich das so gemacht dass es alle Wörter, die mit obj beginnen anzeigt (z.B "objLampe"). Gibt es nun auch eine möglichkeit das es dieses "objLampe" ohne das "obj" ausgibt?

Muzklash
 
Zuletzt bearbeitet:
Hi,

soll das eine Art Badword-Filter werden?

Code:
var lv = new LoadVars();

lv.onLoad = function() {
  // hier sind die Daten geladen!
  filterWords(this.variable, "obj");
}

lv.load("meintext.txt");

function showWords(str, badword) {
  var words = str.split(" ");
  for (var i=0; i<words.length; i++) {
      words[i] = words[i].split(badword).join("");
      trace(words[i]);
  }
}

Gruß
.
 
Zurück