![]() |
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]() ![]() ![]() |
|
malor |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 632 Регистрация: 17.11.2006 Репутация: нет Всего: нет |
Результат в файле: 1 s t r o k a # 1 Переноса нет... PS: Откуда пробелы между символами берутся? Это сообщение отредактировал(а) malor - 23.6.2011, 21:40 |
|||
|
||||
Keeper89 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 9 Всего: 58 |
Какая Delphi и какой тип у temp?
|
|||
|
||||
malor |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 632 Регистрация: 17.11.2006 Репутация: нет Всего: нет |
temp: String;
Delphi XE |
|||
|
||||
Keeper89 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 9 Всего: 58 |
Тогда
Это сообщение отредактировал(а) Keeper89 - 23.6.2011, 21:52 |
|||
|
||||
malor |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 632 Регистрация: 17.11.2006 Репутация: нет Всего: нет |
Все равно вот так:
1 s t r o k a # 1
|
|||
|
||||
THandle |
|
|||
![]() Хранитель Клуба ![]() Награды: 1 Профиль Группа: Админ Сообщений: 3639 Регистрация: 31.7.2007 Где: Moscow, Dubai Репутация: 50 Всего: 372 |
Может что то такое?
|
|||
|
||||
malor |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 632 Регистрация: 17.11.2006 Репутация: нет Всего: нет |
Так заработало, но это становится заметным если Блокнот по F4 открываешь, а если по F3, то нет. Нажатие "Переносить строки" в менюхе Блокнота никак не влияет?
[*] Почему пробелы между буквами? |
|||
|
||||
kami |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 22 Всего: 72 |
сперва - записать в файл префикс, который позволит текстовому редактору понять, что нужно работать с UTF16:
Если не записать префикс, то текстовые редакторы будут думать, что работают либо с ANSI либо с UTF8. Что для DelphiXE - неверно. Отсюда и "пробелы" между буквами - второй байт символа в UTF16 Это сообщение отредактировал(а) kami - 24.6.2011, 00:12 |
|||
|
||||
malor |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 632 Регистрация: 17.11.2006 Репутация: нет Всего: нет |
Есть какой-то параметр, чтоб WriteFile внося запись затирал то, что было прежде?
|
|||
|
||||
CodeMonkey |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 29 Всего: 89 |
Это не пробелы. Это нули. Unicode. Подтянуть мат-часть: http://www.transl-gunsmoker.ru/2009/09/pchars.html#d2009 - и далее по ссылкам. Он и так это делает. -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
malor |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 632 Регистрация: 17.11.2006 Репутация: нет Всего: нет |
В данном коде два раза вызывается функция WriteFile(...) и на втором заходе она не уничтожает внесенную до этого запись:
|
||||
|
|||||
CodeMonkey |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 29 Всего: 89 |
Что ты понимаешь под "вторым заходом"? В этом коде вообще не имеет значения, затирает ли WriteFile предыдущее содержимое или нет - потому что твой CreateFile каждый раз создаёт новый пустой файл, ибо CREATE_ALWAYS. -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
Dik0n |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 153 Регистрация: 11.5.2011 Репутация: нет Всего: 10 |
Есть такое понятие как текущая позиция в файле, юзай
--------------------
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ◄◄◄ Сотри монеткой защитный слой |
||||
|
|||||
malor |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 632 Регистрация: 17.11.2006 Репутация: нет Всего: нет |
Внесение в файл строки:
А можно писать функцией WriteFile() не в Unicode, а в ANSI?. Я стал использовать функцию WriteFile() из-за возможности указать опцию FILE_SHARE_READ. А до этого юзал WriteLn(): Rewrite(fEventKB); WriteLn(fEventKB, ID_msg_KB); |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 18 Всего: 88 |
пиши AnsiString а не String
переменная FileMode, но не для F: TextFile -------------------- Обижено школьников: 8 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |