| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Для новичков > Filestream read|write - непонятная кодировка |
| Автор: Sanek123 29.10.2011, 20:11 | ||||
Здравствуйте. Помогите разобраться. Вопрос чайника - потому в разделе для чайников. Прошу не давать ссылки в гугл (уж три дня там сижу, надоело)
файл текстовый, кодировка ANSI. в сообщении и в текстовике караказябра. Что не так и / или что нужно сделать, как исправить. и еще по поводу параметров: если задаю параметр fmShareDenyNone - ни чтения, ни записи, вообще ничего не происходит, но и ошибок не выдает. если задаю параметр fmOpenReadWrite - выдает караказябру. однако мне всеже необходим первый параметр, т.к. фаил используется несколькими приложениями, и если он на момент чтения записи занят, то вылетает ошибка (не могу читать, писать - файл занят). и еще (очень хочеться) доработать чтение,запись нужной строки, например чтото вроде
а как будет правильно? |
| Автор: CodeMonkey 29.10.2011, 21:09 | ||||
Шо за бред? Не указан режим открытия. F1 нажмите.
Buf - это указатель. Вы портите память, а не читаете строку. Передавать надо значение строки, а не указатель. Не говоря уже о том, что прежде чем что-то передавать, под это что-то надо выделить память. Мат-часть: http://www.transl-gunsmoker.ru/2009/09/blog-post.html http://www.transl-gunsmoker.ru/2009/09/pchars.html Добавлено через 1 минуту и 3 секунды А, ну ещё и версия Delphi значение имеет. Домашнее задание: разобраться в отличиях String и AnsiString (подсказка: нажмите F1). |
| Автор: Sanek123 30.10.2011, 00:00 | ||||||||||||
buf:string - это строка, а не указатель(pointer).
разьве здесь не указано количество?
где
хотя может len надо было бы еще умножить на кол-во байт на символ для типа String.
Я это и спрашиваю. Если караказябра из-за несоответствия типов - так и скажи, а не остри по поводу F1. А что касается fmShareDenyNone то в одной из тех умных книжек что мне здесь советовали сказано что данный параметр используется как раз в том случае когда возникают трудности с доступом к файлу. Добавлено через 2 минуты
а подробнее (понятнее). что есть битовая маска? |
| Автор: northener 30.10.2011, 00:44 |
Это именно указатель на адрес в памяти ячейки, в которую записан адрес "области памяти", в которой содержится та самая строка. Добавлено @ 00:48 ??? P.S. И кое-кто говорит мне о том, что уроки ЮЗ сейчас не нужны! |
| Автор: Sanek123 30.10.2011, 10:27 | ||||
ребята так объясните почему передавая сразу строку
работает, а если туже строку, но посредством переменной,
то не работает? |
| Автор: Snowy 31.10.2011, 15:58 | ||
| потому что string - это указатель, а shortstring - непосредственно строка. Писать нужно саму строку, начиная с нужного символа:
|