PDA

Просмотр полной версии : Как сохранить перенос строки?


getelse
27.09.2009, 09:51
Нужна помощь

Когда нажимаю на button(кн. сох. изм.), весь загруженный текст становится в одну строку.
Что надо сделать, чтобы после наж. button, переносы сохранялись?
-------------------------
допустим, загруженный текст в TextField (тут все как надо)
Привет
<b>Алексей</b>
Викторович

после нажатия button(кн. сох. изм.)
Привет<b>Алексей</b>Викторович
-------------------------

-------------------------
Сам файл green.html до сохранения
Привет
<b>Алексей</b>
Викторович

После сох(наж. кн. button)
Привет[]<b>Алексей</b>[]Викторович
появлеяеся [] - квадратик, как его убрать и
Что надо сделать, чтобы после наж. button, переносы сохранялись?
-------------------------

Есть button и TextField(input) и script.php

Загрузка текста из файла green.html
var slv:LoadVars = new LoadVars();
slv.onData = function(src:String) {
if (src != undefined) {
txt.text = src.toString().split('\r').join('');
}
}
slv.load("green.html);

button
on(release) {
var sender:LoadVars = new LoadVars();
sender.vess = txt.text;
sender.file = "green.html";
sender.sendAndLoad("script.php", sender, "POST");
sender.onData = function(myData){};
}

script.php
<?php
$file=fopen($_POST["file"],"w+");
$_POST["vess"] = stripslashes($_POST["vess"]);
if(isset($_POST["vess"])){
$string=$_POST["vess"];
fputs($file,$string);
}
fclose($file);
?>

mooncar
27.09.2009, 18:58
Сталкивался с этим.
Проблема вот в чем.
Вам нужно разделить понятие выводимого текста и редактируемого текста.
То есть вот тут:

slv.onData = function(src:String) {
if (src != undefined) {
txt.text = src.toString().split('\r').join('');
}
}
закидывайте текст одновременно и в поле для отображение и в строковую переменную, которая уже и будет редактироваться:

slv.onData = function(src:String) {
if (src != undefined) {
txtSrc = src;
txt.text = src.toString().split('\r').join('');
}
}

Дальнейшая работа по редактированию производится с txtSrc!
txtSrc = function edit (txtSrc)
Здесь function edit - это неизвестный мне ваш алгоритм редактирования, мне для объяснения она не важна.

Но когда либо результаты работы по редактированию нужно вывести в текстовое поле, после события, означающего окончание редактирования (т.е. внутри function edit, в конце) используете
txt.text = txtSrc.toString().split('\r').join('');
При сохранении ни в коем случае также нельзя теперь брать данные из текстового поля, берите тоже из
sender.vess = txtSrc;

Что все это означает? Это означает, что структура исходного файла в части, касающейся "переносов" строк останется без изменений.
А в тестовое поле для обозрение польователем выводится строка, уже обработанная сплит-джойном.