Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 12.09.2012, 13:05
Fartoviy_Spec вне форума Посмотреть профиль Отправить личное сообщение для Fartoviy_Spec Найти все сообщения от Fartoviy_Spec
  № 1  
Ответить с цитированием
Fartoviy_Spec

Регистрация: Mar 2012
Сообщений: 36
По умолчанию Неправильное сцепление строк

Загружаю текстовый файл состоящий из фамилий
Цитата:
А. Иванов
Б. Петров
Функция при окончании загрузки
Код AS3:
function onComplete(e:Event):void
{
	var str:String = new String(e.target.data);
	var params:Array = str.split('\n',str.length);
	trace(params[0].substring(3)+' '+params[0].substr(0,3))
}
Выводит
Цитата:
Иванов
А.
А нужно, чтобы выводил на одной строке
Цитата:
Иванов А.
Помогите кто знает как исправить

Старый 12.09.2012, 13:13
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 2  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Убрать
Код:
"\n"
?

Старый 12.09.2012, 13:16
Fartoviy_Spec вне форума Посмотреть профиль Отправить личное сообщение для Fartoviy_Spec Найти все сообщения от Fartoviy_Spec
  № 3  
Ответить с цитированием
Fartoviy_Spec

Регистрация: Mar 2012
Сообщений: 36
"\n" этого символа нет
например
Код AS1/AS2:
trace(params[0])
выводит
Цитата:
А. Иванов

Старый 12.09.2012, 13:18
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 4  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Конечно нет. Это же символ перехода на другую строку. В текстовом поле он отображаться не будет.
Вопрос, зачем он там вообще добавлен? Для деления текста который записан в столбик?

По представленному коду задача не совсем понятна. Надо глянуть на сам текстовый файл. Может там изначально делится не верно

Старый 12.09.2012, 13:23
Fartoviy_Spec вне форума Посмотреть профиль Отправить личное сообщение для Fartoviy_Spec Найти все сообщения от Fartoviy_Spec
  № 5  
Ответить с цитированием
Fartoviy_Spec

Регистрация: Mar 2012
Сообщений: 36
Текстовый файл ровно тот, что я вверху написал из двух строк, в коде добавлен этот символ, чтобы разбить текстовый файл на массив состоящий из строк, то есть в данном сучаи массив имеет два элемента.

Старый 12.09.2012, 13:41
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 6  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
попробуйте
Код AS3:
var params:Array = str.split('\r\n');

Старый 12.09.2012, 14:04
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 7  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Действительно фигня какая-то.
Набросал решение на уровне костыля, но работает:

содержимое текстовика
Цитата:
А. Иванов
Б. Петров
А. Сидоров
В. Путин
Код AS3:
package  {
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.net.URLLoader;
	import flash.net.URLRequest;
	/**
	 * ...
	 * @author casey ryan
	 */
	[SWF(backgroundColor="0xFFFFFF")]
	public class Main extends Sprite {
 
		public function Main() {
			var loader:URLLoader = new URLLoader();
			loader.addEventListener(Event.COMPLETE, onComplete);
			loader.load(new URLRequest("text.txt"));
		}
 
		private function onComplete(e:Event):void {
			var rawText:String 	= String(e.target.data);
			var values:Array 	= rawText.split('\r\n');
			for each (var str:String in values) {
				var noSpaces:String = str.replace(/\s{2,}/g, ' '); // сносим лишние пробелы, больше 2 
				var s:Array = noSpaces.split(" ");
				if (s.length > 1) {
					trace(s[1], s[0]);
				}
			}
		}
	}
}
выводит:
Цитата:
Иванов А.
Петров Б.
Сидоров А.
Путин В.

Старый 12.09.2012, 15:26
Fartoviy_Spec вне форума Посмотреть профиль Отправить личное сообщение для Fartoviy_Spec Найти все сообщения от Fartoviy_Spec
  № 8  
Ответить с цитированием
Fartoviy_Spec

Регистрация: Mar 2012
Сообщений: 36
Главное работает) Спасибо caseyryan. Хотя что сказал udaaff проще


Последний раз редактировалось Fartoviy_Spec; 12.09.2012 в 15:36.
Старый 12.09.2012, 15:45
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 9  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
Это же виндовый перенос строк, там всегда присутсвует \r

Создать новую тему Ответ Часовой пояс GMT +4, время: 03:38.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 03:38.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.