Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C++ Builder > TFileStream прочитать в String |
Автор: lamber 31.8.2010, 14:49 | ||
Какая-то не понятная проблема как только не пробовал прочитать файл, выходит какая-то непонятная штука. Вот код собственно.
Пробовал и просто функцию Read тоже ничего не пишет, файл находится вместе с exe. Гуглил вроде все правильно делаю а все равно не работает. |
Автор: chip_and_dayl 31.8.2010, 15:12 |
А Memo1->Lines->LoadFromFile("html.htm") не проще!?! |
Автор: lamber 31.8.2010, 15:31 |
нет так конечно можно, но мне интересно как работать в TFileStream |
Автор: chip_and_dayl 31.8.2010, 15:36 | ||
ТО беж в мемо ничего не попадает? А какой результат будет после выполнения
|
Автор: xvr 1.9.2010, 14:15 | ||||
|
Автор: SerK 22.10.2016, 11:34 | ||||
Прочитал всю тему, но так и не понял - как записать строку в двоичный файл и считать данные в String?
и прочитать?
Ничего пока не получается. |
Автор: Alexeis 22.10.2016, 13:26 | ||
String это не строка, это класс строки. Побайтово можно сохранять только строки формата Си. Не хотите работать на уровне Си используйте специализированные классы.
http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/Classes_TStringStream.html |
Автор: SerK 23.10.2016, 05:42 | ||
Спасибо, что ответили. Я не то что не хочу, а не знаю. Может скинете маленький примерчик, как побайтово сохранять Строку на уровне Си? |
Автор: Alexeis 23.10.2016, 11:54 | ||||
|
Автор: SerK 23.10.2016, 15:37 |
Спасибо. Получилось. Но есть одна проблема - после закрытия программы и когда снова открыть, то считывает уже не все символы, и появляются крякозябли. "как записать эту строку", а дальше не считываются. Но если снова перезаписать и без закрытия программы запустить на считывание, то снова считывается нормально. С чем это может быть связано? Среда - embarcadero rad studio 10 |
Автор: Alexeis 23.10.2016, 22:33 | ||||
А ну да, там же 2х байтовые юникодные символы наверное, если билдер старше 2010го. При записи значит пишем
При чтении значит выделять нужно в 2 раза меньше символов выделять.
Но тут нужно еще смотреть чтобы кодировка исходная файла соответствовала кодировке строки. Если UnicodeString то и файл должен быть utf16 и обратно. Если файл создается как раз этим кодом то проблем не будет. |
Автор: SerK 24.10.2016, 07:22 |
Большое спасибо за помощь. Всё работает. |
Автор: Bolleycox 3.9.2022, 04:08 |
Модератор: Сообщение скрыто. |
Автор: seipiefly 5.9.2022, 02:15 |
Модератор: Сообщение скрыто. |
Автор: Wadsunsed 7.9.2022, 04:40 |
Модератор: Сообщение скрыто. |