Форум
Написать нам
  • Страница 1 из 1
  • 1
Модератор форума: as-master  
Сохранение строковой переменной в файл
as-masterДата: Воскресенье, 08 Июля 2007, 10:51 | Сообщение # 1
Разводящий
Группа: Модераторы
Сообщений: 2337
Репутация: 101
Награды: 5
Статус: Offline
Есть строковая переменная, которая содержит в себе переносы строки
CHR(13) и CHR(10), а потому в этой переменной несколько строк.

Число строк заранее мне неизвестно, известно лишь имя переменной.

ВОПРОС: Как сохранить её в текстовый файл, чтобы сохранилось всё
с переносами строки? Что-то я опять торможу.....


Да пребудет с вами ММВ!
 
toizyДата: Воскресенье, 08 Июля 2007, 12:23 | Сообщение # 2
Студийная субстанция
Группа: Администраторы
Сообщений: 2309
Репутация: 29
Награды: 12
Статус: Offline
Code
s$='123'+CHR(13)+CHR(10)+'456'+CHR(13)+CHR(10)+'789'+CHR(13)+CHR(10)
FileName$='C:\1.txt'
i=StrToFile(FileName$, s$, TRUE, TRUE)
If (i=FALSE) Then
   Message("Не выполнено","")
End

Только это приведёт к тому что строка в файле будет разнесена на несколько строк, и ты не сможешь прочитать это всё в том виде, в каком было

Добавлено (08 Июля 2007, 12:23)
---------------------------------------------
Либо, как вариант, во врема сохранения искать все переносы строки и заменять на свой символ (лучше непечатный :)). При чтении восстанавливать символы переноса.

Code
alias$=CHR(33)
s$='123'+CHR(13)+CHR(10)+'456'+CHR(13)+CHR(10)+'789'+CHR(13)+CHR(10)
For i=1 To LEN(s$)-1
   t1$=StrGet(s$, i)
   c=i+1
   t2$=StrGet(s$, c)
   If (ORD(t1$)=13&ORD(t2$)=10) Then
     s$=StrDel(s$, i, 1)
     s$=StrSet(s$, i, alias$)
   End
Next i
Message("","s$")


Жизнь оказалась не такой уж и забавной, как поначалу...
 
as-masterДата: Воскресенье, 08 Июля 2007, 12:46 | Сообщение # 3
Разводящий
Группа: Модераторы
Сообщений: 2337
Репутация: 101
Награды: 5
Статус: Offline
А знаешь, как я решил эту проблему?
Я не стал использовать CHR(13) и CHR(10) для переноса строк,
сделал файл в виде одной строки и сохраняю его в виде HTML-файла,
который потом загружается в объект Browser.

А для переносов использовал тэги: <p></p> - для переноса с абзацем,
и <br> - для переноса без абзаца ("мягкий" перенос).

Заодно вставил и тэги для текста - шрифт, цвет, где выделить болдом,
красиво стало :)

Скоро примерчик появится - это словарь.

Спасибо, что откликнулся! Может, у кого еще варианты будут?
В дальнейшем это может очень пригодиться.


Да пребудет с вами ММВ!
 
RushДата: Вторник, 10 Июля 2007, 15:14 | Сообщение # 4
Обозреватель-консультант
Группа: Проверенные
Сообщений: 216
Репутация: 10
Награды: 1
Статус: Offline
Quote (toizy)
Только это приведёт к тому что строка в файле будет разнесена на несколько строк, и ты не сможешь прочитать это всё в том виде, в каком было

Ну обратно загрузить не проблема:
Code
txt$=StrFromFile(filename$,1,-1)
 
as-masterДата: Вторник, 10 Июля 2007, 16:29 | Сообщение # 5
Разводящий
Группа: Модераторы
Сообщений: 2337
Репутация: 101
Награды: 5
Статус: Offline
Quote (Rush)
StrFromFile(filename$,1,-1)

А что означает "минус один"?
Это выше моего понимания, как и четвертое измерение smile


Да пребудет с вами ММВ!
 
RushДата: Вторник, 10 Июля 2007, 17:07 | Сообщение # 6
Обозреватель-консультант
Группа: Проверенные
Сообщений: 216
Репутация: 10
Награды: 1
Статус: Offline
Минус один означает - загрузить весь файл, начиная со строки, которая определена вторым параметром функции.
 
  • Страница 1 из 1
  • 1
Поиск: