Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.03.2011, 00:07   #1
Тутонхамон
Пользователь
 
Аватар для Тутонхамон
 
Регистрация: 09.02.2011
Сообщений: 43
Сообщение Файлы

Наткнулся на такой код:
Код:
var
  myWord, myWord1, myWord2 : Word;
  myFile : File of Word;

begin
  // Попытка открыть файл Test.bin binary для записи
  AssignFile(myFile, 'Test.cus');
  ReWrite(myFile);

  // Запись нескольких строк данных Word в файл
  myWord1 := 234;
  myWord2 := 567;
  Write(myFile, myWord1, myWord2);

  // Закрытие файла
  CloseFile(myFile);

  // Повторное открытие файла в режиме только для чтения
  Reset(myFile);

  // Показ содержимого файла
  while not Eof(myFile) do
  begin
    Read(myFile, myWord);
    ShowMessage(IntToStr(myWord));
  end;

  // Закрытие файла в последний раз
  CloseFile(myFile);
end;
Все работает только если записывать цифры.
А при попытке записать строки вылетает ошибка не тот тип.
Код:
myWord1 := 'text';
Код:
[Error] Unit1.pas(45): Incompatible types: 'Word' and 'String'
Подскажите как записать строки в файл не TXT.
Тутонхамон вне форума Ответить с цитированием
Старый 28.03.2011, 00:27   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,821
По умолчанию

в цикле записывать коды символов строки
p51x вне форума Ответить с цитированием
Старый 28.03.2011, 00:54   #3
Тутонхамон
Пользователь
 
Аватар для Тутонхамон
 
Регистрация: 09.02.2011
Сообщений: 43
По умолчанию

Спасибо ща попробую)
Тутонхамон вне форума Ответить с цитированием
Старый 28.03.2011, 01:11   #4
Тутонхамон
Пользователь
 
Аватар для Тутонхамон
 
Регистрация: 09.02.2011
Сообщений: 43
По умолчанию

А записывать так надо
Код:
myWord1 := $41;
$41 = 'A'

А то в строку записывает почему то 65
Тутонхамон вне форума Ответить с цитированием
Старый 28.03.2011, 01:21   #5
asmodey1
Подтвердите свой е-майл
 
Регистрация: 19.12.2010
Сообщений: 808
По умолчанию

$41=4*16+1=65
asmodey1 вне форума Ответить с цитированием
Старый 28.03.2011, 01:32   #6
856100
Форумчанин
 
Регистрация: 12.08.2008
Сообщений: 135
По умолчанию

Код:
myWord1 := 'text';
а вы изменили тип переменной, после того как решили записать в файл строку?
Будь проще, бери пример с одноклеточных
856100 вне форума Ответить с цитированием
Старый 28.03.2011, 01:47   #7
Сtrl
C++
Форумчанин
 
Аватар для Сtrl
 
Регистрация: 27.03.2011
Сообщений: 803
По умолчанию

Цитата:
Сообщение от Тутонхамон Посмотреть сообщение
А записывать так надо
Код:
myWord1 := $41;
$41 = 'A'

А то в строку записывает почему то 65
Используйте стандартные функции chr() и ord().
Ищете информацию по C++?
cplusplus.com
Сtrl вне форума Ответить с цитированием
Старый 28.03.2011, 11:26   #8
Тутонхамон
Пользователь
 
Аватар для Тутонхамон
 
Регистрация: 09.02.2011
Сообщений: 43
Хорошо Благодарность

Цитата:
Сообщение от Сtrl Посмотреть сообщение
Используйте стандартные функции chr() и ord().
Всем огромное спасибо теперь я понял.
Я сделал следующим образом и все получилось:
Код:
myWord1 := ord('A');
myWord2 := 1212;
Write(myFile, myWord1, myWord2);
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
while not Eof(myFile) do
  begin
    Read(myFile, myWord);
    ShowMessage( chr(myWord) );
  end;
Действительно работает.
Тутонхамон вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не сохраняет файлы (Создает файлы пустышки) Rock231 Помощь студентам 2 25.12.2010 12:31
cи, файлы Ам тя Помощь студентам 4 30.06.2010 19:08
Файлы данных.Типизированные файлы. вылка Помощь студентам 6 17.05.2010 15:42
файлы Scofield8 Фриланс 7 05.02.2010 15:48
два вредных вопроса:про асю и прикриплёные файлы файлы steck Свободное общение 3 17.06.2007 14:53