|
|
|||||
Регистрация: Oct 2007
Сообщений: 21
|
получение данных из txt
сразу приношу свои извинения, если тема уже поднималась, искал тут и вообще гуглил не первый день. много всего понял, но довести до ума не получается.
есть текстовый файл, он постоянно обновляется. в этом текстовом файле отображаются "состояния" выглядит примерно так: NAME1 OK NAME2 NO NAME3 OK NAME4 OK ит.д. задача: вытащить оттуда все те строки которые заканчиваются на NO далее, будет писаться: NAME2 6:24(тут будет тикать таймер вниз потом будет БУМ) таймер и проигрывания звука по истечении оного сделал без проблем, загрузить во флеш файл тоже получилось. pointstatus = new XML(); pointstatus.load("здесь путь к файлу"); pointstatus.onLoad = function() { trace(pointstatus) } если не затруднит, подскажите как вытащить определенную строку. |
|
|||||
так пашет ?
__________________
Дети не должны знать о своих родителях |
|
|||||
Banned
[+4 10.07.10]
[+1.4 10.08.10] [+1 20.08.10] |
2 пути решения, в txt файл записывать переменные в XML разметке, и тогда проблем не будет.
Если же не нравится такой вариант, то можно сделать по симбольный разбор pointstatus.toString(); Возможно есть еще варианты.... |
|
|||||
Регистрация: Oct 2007
Сообщений: 21
|
2 Tails
да вроде пашет... а что не так? 2 KirAmp нет изменять txt файл не вариант. насчет pointstatus.toString(); можно чуть по конкретнее, если не затруднит?.. а то ничего конкретного нагуглить на удалось спасибо |
|
|||||
Banned
[+4 10.07.10]
[+1.4 10.08.10] [+1 20.08.10] |
e15r
сначала превращяете ваш полученный XML в String при помощи .toString(); Потом эту строчку начинаете разбирать в цикле, скажем с такой логикой: пока не пробел набивается переменная:String, как "пробел", создается переменная с названием как у той переменной. потом, пока не "\n" заполняется содержимое этой новой переменной... и т.д |
|
|||||
Регистрация: Jan 2006
Адрес: Novosibirsk
Сообщений: 353
|
лучше вариант с XML,
а если делать разбор строки, то это муторно. Делается при помощи text.substring() |
|
|||||
Этот код правильный, он отлично будет грузить переменные из текстовика. Допустим если у вас есть в текстовике переменная "myVar=5", то после загрузки во флеш, обращаться к ней нужно:
все переменные в текстовике должны разделяться символом &
__________________
Дети не должны знать о своих родителях |
|
|||||
Регистрация: Oct 2007
Сообщений: 21
|
изменить текстовый документ варианта нет.
|
|
|||||
Модрон-ветеринар
|
Раз формат тестового файла менять никак, используйте обработчик onData для получения всего текста как есть, и пишите парсер (синтаксический анализатор), например, как KirAmp предложил.
Либо в "Вакансии", если сами не справитесь с парсером - работа небольшая. Это решение. Последний раз редактировалось mooncar; 03.08.2010 в 20:39. |
|
|||||
Регистрация: Oct 2007
Сообщений: 21
|
оказывается есть такая команда как lastIndexOf которая ищет в обратном направлении...
короче показываю итоговый код, с периодическим обновлением информации и его расфасовкой по массиву и ит.д. setInterval(loadtxt, 5000); function loadtxt() { alarmArray = new Array (); pointalarm = new XML(); pointalarm.load("test.txt"); pointalarm.onLoad = function() { var b:Number=0 pointalarm = pointalarm.toString(); while (b < 10){ pointalarm = pointalarm.slice(pointst+2); trace("pointalarm: " +pointalarm); pointst = pointalarm.indexOf('NO'); trace("pointst: " +pointst); pointlast = pointalarm.lastIndexOf('\n',pointst)+1; trace("pointlast: " +pointlast); point = pointalarm.substring(pointlast,pointst); trace("point: " +point) alarmArray.push(point); b++ }; alarmArray=alarmArray.slice(0,alarmArray.length) trace ("массив: " +alarmArray.toString ()); AAlength=alarmArray.length trace("длина массива: " +AAlength) var pole:Number = 0; point0.text = alarmArray[0] point1.text = alarmArray[1] point2.text = alarmArray[2] point3.text = alarmArray[3] point4.text = alarmArray[4] point5.text = alarmArray[5] point6.text = alarmArray[6] point7.text = alarmArray[7] point8.text = alarmArray[8] point9.text = alarmArray[9] trace("КОНЕЦ") }; }; всем спасибо что помогали Последний раз редактировалось e15r; 04.08.2010 в 20:44. |
Часовой пояс GMT +4, время: 19:37. |
|
« Предыдущая тема | Следующая тема » |
|
|