![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
[+3 17.06.08]
Регистрация: Mar 2008
Сообщений: 15
|
Откуда берутся удвоенные переносы строк при загрузке обычного многострочного текстового файла?
Код приведен ниже, а файл можно сделать любой с именем 'Kyiv.txt' и кодировкой UTF-8 с несколькими строками текста. import flash.display.Sprite;
import flash.events.Event;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.events.IOErrorEvent;
var loader:URLLoader;
function URLLoader_loadExample() {
var request:URLRequest = new URLRequest("Kyiv.txt");
loader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.TEXT;
try {
loader.load(request);
}
catch (error:SecurityError)
{
trace("A SecurityError has occurred.");
}
loader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
loader.addEventListener(Event.COMPLETE, loaderCompleteHandler);
}
function loaderCompleteHandler(event:Event):void {
try {
txt.text = loader.data; // txt - текстовое поле
trace(loader.data);
} catch (e:TypeError) {
trace("Could not parse the file.");
}
}
function errorHandler(e:IOErrorEvent):void {
txt.text = "Had problem loading the file.";
}
URLLoader_loadExample();
|
|
|||||
|
[+1 18.03.08]
Регистрация: Nov 2006
Сообщений: 223
|
Он и символ с кодом 0D и символ с кодом 0A считает переносом.
Вот пример: В первом случае нет пустой строки между словами (только \n). Во втором случае есть (и \r и \n воспринимаются как переход на новую строку). Таким образом, нужно провести дополнительную обрпботку - заменить все \r\n на \n. Последний раз редактировалось WindWalker; 17.03.2008 в 09:32. |
|
|||||
|
[+3 17.06.08]
Регистрация: Mar 2008
Сообщений: 15
|
Попробовал вот так, и ничего не помогло:
|
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Можете еще про TextField.condenseWhite почитать, если совсем переносы не нужны.
Последний раз редактировалось udaaff; 18.03.2008 в 02:11. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Так вы удалить хотите все переносы или все-таки двойные? Вы внимательно прочитали второй пост?
|
|
|||||
|
[+3 17.06.08]
Регистрация: Mar 2008
Сообщений: 15
|
Получилось!!!
|
|
|||||
|
[+3 17.06.08]
Регистрация: Mar 2008
Сообщений: 15
|
Хорошо, что я знаю регулярные выражения, я то долго мучался бы.
Точнее будет: Adobe могли бы сделать что-то на этот случай, а то гониво получается. Кстати, за решение этой проблемы мне заплатит одна дизайн-студия $50. Так что я рад Всем спасибо за внимание!Последний раз редактировалось stringer2008; 18.03.2008 в 00:51. |
|
|||||
|
стервочка (я мужик)
|
str = str.replace(/\n\r?/g,"\n");
|
|
|||||
|
[+1 18.03.08]
Регистрация: Nov 2006
Сообщений: 223
|
Кстати, очень долго колебался, как же всё-таки правильно: "\n\r" или "\r\n". Никак не мог вспомнить.
Интуиция подсказывала, что всё-таки "\n\r". Здравый смысл ей вторил: сперва новая строка, а затем уже возврат каретки. Однакось: Выдаёт: 10 13 А в файлах (по крайней в винде), всегда идёт 13 10. Так что "\r\n" - более правильно, хоть и почему-то режет глаз. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
А если вспомнить обычную печатную машинку, то сначала делался возврат каретки (\r), потом перевод на новую строку (\n).
|
![]() |
![]() |
Часовой пояс GMT +4, время: 11:11. |
|
|
« Предыдущая тема | Следующая тема » |
|
|