Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Чтение из файла, Неправильно воспринимает символы 
V
    Опции темы
arcane
Дата 7.7.2007, 01:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 7.7.2007

Репутация: нет
Всего: нет



Такая проблема: записываю в файл массив в виде текстовых символов в котором есть нулевые, а при чтении из файла нулевые нулевые не воспринимаются.
То есть в файле записано:
ааа         ааа
а при чтении получается просто: аааааа.
PM MAIL   Вверх
bom
Дата 7.7.2007, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 329
Регистрация: 22.2.2004
Где: Казахстан, Алматы

Репутация: 4
Всего: 6



Пробелы - не нулевые символы.
Покажи что и как записывешь, как считываешь, в чем отображаешь.
PM MAIL   Вверх
arcane
Дата 7.7.2007, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 7.7.2007

Репутация: нет
Всего: нет



Код

dim buff as string
buff = chr(255) & chr(255) & chr(0) & chr(0) & chr(255) & chr(255)
open filename for output as #1
print #1, buff
close #1

'В файле получается: яя  яя


dim buff as string 
open filename for input as #1
input #1, buff
close #1
'В результате получается что:
'buff="яяяя"


Пробовал читать по разному, но buff всегда получается "яяяя"




PM MAIL   Вверх
mihanik
Дата 7.7.2007, 19:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

Репутация: 11
Всего: 109



А в чём вопрос?
Где чёткая постановка той задачи, которую решаешь?
Может быть ты используешь не тот подход к решаемой задаче!
Что ты изначально хочешь?

У меня сегодня температура под 38, поэтому телепатические способности слегка снижены...

 smile 

ЗЫ.
Пробел имеет код 32, а не 0...
Но это так. Для развития...



--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
arcane
Дата 7.7.2007, 19:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 7.7.2007

Репутация: нет
Всего: нет



В том и проблема что при просмотре файла нулевой символ отображается как пробел, причем только он. Вопрос в том как правильно считать из файла эти символы, дело в том что Chr(0) в текстовой строке не отображается и полностью пропадает. Дело в том что:
Код

dim buff as string
buff = chr(255) & Chr(0) & chr(255)
'buff = "яя" 
open filename for output as #1
print #1, buff
close #1

'но когда читать
dim buff as string
open filename dor input as #1
input #1, buff
close #1
'buff = "яя" нулевой символ пропадает
'а его надо вытащить


З.Ы. отоюбражается Chr(0) в блокноте как ПРОБЕЛ а не 
но это так для свединия.
PM MAIL   Вверх
bom
Дата 7.7.2007, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 329
Регистрация: 22.2.2004
Где: Казахстан, Алматы

Репутация: 4
Всего: 6



Работай с файлом в двоичном режиме, тогда не будут добавляться CrLf при записи строки оператором print и удаляться null при чтении input.
Код

Dim buff As String, i As Integer
buff = Chr(255) & Chr(255) & Chr(0) & Chr(0) & Chr(255) & Chr(255)
Open filename For Binary As #1
Put #1, , buff
Close #1

Open filename For Binary As #1
buff = Space(FileLen(filename))
Get #1, , buff
Close #1
For i = 1 To Len(buff)
MsgBox Asc(Mid(buff, i, 1))
Next i



Это сообщение отредактировал(а) bom - 7.7.2007, 20:39
PM MAIL   Вверх
arcane
Дата 9.7.2007, 21:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 7.7.2007

Репутация: нет
Всего: нет



Спасибо большое, все работает
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0493 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.