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

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

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

Регистрация: Oct 2007
Адрес: Киев
Сообщений: 6
Отправить сообщение для gesecond с помощью ICQ
По умолчанию Два разных массива из двух одинаковых стрингов

Как можно сравнить два массива, если

Код:
t = 0;
k = 0;
arr1 = new Array();
arr2 = new Array();
primer.text = "\n\tone\n\ttwo";
perem2 = "\n\tone\n\ttwo";
perem1 = primer.text;
function simpl() {
	for (i=0; i<perem1.length; i++) {
		if (perem1.charAt(i) != "\n" && perem1.charAt(i) != "\t") {
			arr1[t] = perem1.charAt(i);
			t++;
		}
		if (perem2.charAt(i) != "\n" && perem2.charAt(i) != "\t") {
			arr2[k] = perem2.charAt(i);
			k++;
		}
	}
}
simpl();
trace(arr1);
//output ,o,n,e,
//,t,w,o
trace(arr2);
//output o,n,e,t,w,o
два "одинаковых" стринга дают разные массивы из-за "\n"

Старый 06.10.2007, 17:09
DarkLight вне форума Посмотреть профиль Отправить личное сообщение для DarkLight Посетить домашнюю страницу DarkLight Найти все сообщения от DarkLight
  № 2  
Ответить с цитированием
DarkLight
ветеран форума
 
Аватар для DarkLight

Регистрация: May 2006
Адрес: Москва
Сообщений: 2,978
Отправить сообщение для DarkLight с помощью ICQ Отправить сообщение для DarkLight с помощью Skype™
С помощью операций String.split - Array.join избавиться от мешающих символов перед преобразованием в массив и сравнением, либо в функции сравнения создать массивы без этих символов из исходных, и сравнивать их.
__________________
4am is time to rock

Старый 06.10.2007, 17:10
Mnilionic вне форума Посмотреть профиль Отправить личное сообщение для Mnilionic Найти все сообщения от Mnilionic
  № 3  
Ответить с цитированием
Mnilionic
 
Аватар для Mnilionic

Регистрация: Aug 2005
Адрес: я из Ленинграда
Сообщений: 1,082
Отправить сообщение для Mnilionic с помощью ICQ
Код:
if (perem2 == perem1) {
	trace("стринги одинаковые");
} else {
	trace("видимо стринги неодинаковые");
}

Старый 06.10.2007, 17:19
gesecond вне форума Посмотреть профиль Отправить личное сообщение для gesecond Найти все сообщения от gesecond
  № 4  
Ответить с цитированием
gesecond

Регистрация: Oct 2007
Адрес: Киев
Сообщений: 6
Отправить сообщение для gesecond с помощью ICQ
Вот только пользователь будет менять input текст - одни символы на другие. А разбивка на абзацы должна оставаться и общее число символов не меняется. Так что сравнивать переменные стринги нельзя - только элементы массивов.

Пробовал и String.split, но оно как-то неадекватно реагирует на \n


Последний раз редактировалось etc; 06.10.2007 в 20:25.
Старый 06.10.2007, 17:29
Mnilionic вне форума Посмотреть профиль Отправить личное сообщение для Mnilionic Найти все сообщения от Mnilionic
  № 5  
Ответить с цитированием
Mnilionic
 
Аватар для Mnilionic

Регистрация: Aug 2005
Адрес: я из Ленинграда
Сообщений: 1,082
Отправить сообщение для Mnilionic с помощью ICQ
добавте к вашему коду проверку на \r и, в принципе будет работать.

Код:
primer.text = "\n\tone\n\ttwo";
perem2 = "\n\tone\n\ttwo";
perem1 = primer.text;

function strsplit(str){
	var result:Array = [];
	for (var i=0; i<str.length; i++) {
		if (str.charAt(i) != "\n" && str.charAt(i) != "\t" && str.charAt(i) != "\r") {
			result.push(str.charAt(i));
		}
	}
	return result;
}

trace(strsplit(perem2))
trace(strsplit(perem1))


Последний раз редактировалось Mnilionic; 06.10.2007 в 17:35.
Старый 06.10.2007, 17:35
gesecond вне форума Посмотреть профиль Отправить личное сообщение для gesecond Найти все сообщения от gesecond
  № 6  
Ответить с цитированием
gesecond

Регистрация: Oct 2007
Адрес: Киев
Сообщений: 6
Отправить сообщение для gesecond с помощью ICQ
Ура! Работает! А что такое \r ?

О, сообразил. Спасибо за ответ


Последний раз редактировалось etc; 06.10.2007 в 20:26.
Старый 06.10.2007, 20:26
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 7  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
gesecond в следующий раз за неумение редактировать посты для добавления мысли буду наказывать.

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

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

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


 


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


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