powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Работа с файлами - ничего не понимаю :-(
11 сообщений из 11, страница 1 из 1
Работа с файлами - ничего не понимаю :-(
    #32155407
Фотография Oleg Afanasiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
var
tmp:String;
iFileHandle:Integer;
RecBuf:String;

      tmp:=GetCurrentDir+'\\'+SearchList.Strings[i]+'.txt';
        iFileHandle:= FileCreate(tmp);
            RecBuf:=ErrLogSetERR_USER.Value;
            FileWrite(iFileHandle,RecBuf,sizeof(RecBuf));


в файл всегда попадают 4 байта нв зависимо от того что там в RecBuf,
причём попадают какие-то кракозяблы :-((

Подскажите как же мне записать в файл такой вот конструкцией??

Кстати пример в делфе что для функциии FileWrite не работает :-((
вот так
там где
Код: plaintext
1.
2.
FileWrite(FileHandle,
          StringGrid1.Cells[X,Y], Length(StringGrid1.Cells[X,Y])

делфи говорит что
error-variable required
Самое интересное что этим приёмом на C++ я пользовался сотню раз и всё работало :-((
Может в делфи какие-то грабли на этот счёт??
HELP PLEASE!!!!
...
Рейтинг: 0 / 0
Работа с файлами - ничего не понимаю :-(
    #32155453
oleg_e
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По моему удобнее пользоваться FileStream'ом. Попробуй.
А почему в tmp:=GetCurrentDir+'\\'+SearchList.Strings+'.txt'; - два слэша?
...
Рейтинг: 0 / 0
Работа с файлами - ничего не понимаю :-(
    #32155488
ZrenBy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
FileWrite(iFileHandle,RecBuf[ 1 ],Length(RecBuf));


А вообще работа с указателями в Delphi, особенно с WinAPI,
сделана по-уродски.

Смотрим windows.pas

function WriteFile(...; const Buffer; ...): BOOL; stdcall;
function WriteFileEx(...; lpBuffer: Pointer; ...): BOOL; stdcall;


А теперь WinAPI Help

BOOL WriteFile(..., LPCVOID lpBuffer, ...);
BOOL WriteFileEx(..., LPCVOID lpBuffer, ...);

Блин, ну что это такое ?
...
Рейтинг: 0 / 0
Работа с файлами - ничего не понимаю :-(
    #32155559
Фотография KirillovA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Работа с файлами - ничего не понимаю :-(
    #32155562
Фотография KirillovA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я что-то ничего не понимаю в чем трабла все работает на ура!
delphi:
Код: plaintext
function WriteFile(hFile: THandle; const Buffer; nNumberOfBytesToWrite: DWORD; var lpNumberOfBytesWritten: DWORD; lpOverlapped: POverlapped): BOOL; stdcall;

m$dn:
Код: plaintext
1.
2.
3.
4.
5.
6.
BOOL WriteFile(
  HANDLE hFile,                    // handle to file
  LPCVOID lpBuffer,                // data buffer
  DWORD nNumberOfBytesToWrite,     // number of bytes to write
  LPDWORD lpNumberOfBytesWritten,  // number of bytes written
  LPOVERLAPPED lpOverlapped        // overlapped buffer
);

Результат := WriteFile (МойХендл, МойБуфер, СкокаВешатьГрамм, СкокаГрамВзвесилось, 0);
вроде все.
...
Рейтинг: 0 / 0
Работа с файлами - ничего не понимаю :-(
    #32155572
ZrenBy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Конечно, всё работает.

Вопрос в другом.

Почему одни помидоры красные, а другие зеленые ?

>>function WriteFile(...; const Buffer; ...): BOOL; stdcall;
>>function WriteFileEx(...; lpBuffer: Pointer; ...): BOOL; stdcall;
...
Рейтинг: 0 / 0
Работа с файлами - ничего не понимаю :-(
    #32155574
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>FileWrite(iFileHandle,RecBuf,sizeof(RecBuf));
>всегда попадают 4 байта
string это поинтер. Сайзоф от поинтера в делфи ВСЕГДА даст 4 байта. Нужно не сайзов а length(RecBuf). И будет тебе щастье.
...
Рейтинг: 0 / 0
Работа с файлами - ничего не понимаю :-(
    #32155624
Фотография KirillovA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Товарисч Oleg Afanasiev емейте совесть иногда!
Если отсосишники не уроды - то борландовцы однозначно все такие ...
Вы знаете, иногда бывают такие книжки - где все написано по-русски, а еще иногда бывают сайты где все написано по-аглицки...
И, уважаемый, прежде чем поносить делфю, пожста хотябы увидьте оружие сложенное в ваших руках и руках борланда.
Я, к своему сожалению, программерствую много лет - замечал то, что в одних компиллрах все на ура - в других нифига .. и т.п.
Ознакомьтесь с правилами игры в делфи - а потом опанносивайте.
Успехов!
...
Рейтинг: 0 / 0
Работа с файлами - ничего не понимаю :-(
    #32155880
Фотография Oleg Afanasiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
господин KirillovA!

Вопервых я не поношу делфи , а констатирую факт.
Вам стОит посмотреть пример к функции FileWrite
в хелпе Делфи чтобы убедиться что он с ошибкой.

Во вторых , я бы с удовольствие писАл бы на С++ ,
если бы не пристрастие моего начальника к Делфи который он
считает лучшим из всех существующих компиляторов.

Thnx всем ответившим по существу.
...
Рейтинг: 0 / 0
Работа с файлами - ничего не понимаю :-(
    #32155897
Фотография KirillovA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гы - начнем с самого простого...
Создаем буфер и засовываем в него просто три буковки xxx потом сохраняем.
Проверь - все будет работать на 100%.
...
Рейтинг: 0 / 0
Работа с файлами - ничего не понимаю :-(
    #32155919
Фотография KirillovA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И еще, батенька - асли ты гришь про винапи, то я как монстр программирования могу сказать что большинство основных функций лежит в windows.pas.
И во вторых - не парясь можно поглядеть сырцы SysUtils.FileWrite ...
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Работа с файлами - ничего не понимаю :-(
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]