Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как на WinApi создать текстовый файл и вписать... 
:(
    Опции темы
bartram
  Дата 2.8.2004, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1606
Регистрация: 22.2.2004
Где: Russia, Samara

Репутация: 3
Всего: 29



Как на WinApi создать текстовый файл и вписать в него нужные строки? qstn.gif sample.gif


--------------------
В каждом из нас спит гений, но с каждым днем все крепче ;-)
bartram.ru
Twitter
user posted image 

PM MAIL ICQ   Вверх
Borland_Delphi_6
Дата 2.8.2004, 21:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


LoneLINEss
****


Профиль
Группа: Участник Клуба
Сообщений: 2509
Регистрация: 5.11.2002
Где: in fortune dreams ...

Репутация: нет
Всего: 20



bartram
Это вроде не АПИ, но ты так пробовал?
var f:TextFile;
begin
AssignFile(F, 'file.txt');
Writeln(f, 'String1');
CloseFile(f);
end;


--------------------
Blind Guardian Fan :: BMSTU Student :: A polar bear is a rectangular bear after a coordinate transform.

Мои фотографии
PM MAIL WWW   Вверх
S.A.P.
Дата 2.8.2004, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: 2
Всего: 71



Вот что наскреб в доках:
Код


HANDLE hFile;
DWORD nNumberOfBytesToWrite;
DWORD lpNumberOfBytesWritten;
CHAR lpBuffer[] = "sfgedgedg";
 

hFile = CreateFile("MYFILE.TXT",           // open MYFILE.TXT
               GENERIC_READ,                    // open for reading
               FILE_SHARE_READ,               // share for reading
               NULL,                                   // no security
               OPEN_EXISTING,             // existing file only
               FILE_ATTRIBUTE_NORMAL,     // normal file
               NULL);                     // no attr. template

WriteFile(hFile, &lpBuffer, // pointer to data to write to file
   (DWORD)9,                 // number of bytes to write
   &lpNumberOfBytesWritten, // pointer to number of bytes written
   NULL);
CloseHandle(hFile);  // handle to object to close  

при необходимости можно легко перевести в Паскаль. Может где и ошибка не ругайте сильно.

adv/63.gif
PM MAIL   Вверх
bartram
  Дата 3.8.2004, 09:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1606
Регистрация: 22.2.2004
Где: Russia, Samara

Репутация: 3
Всего: 29



Цитата
var f:TextFile; begin AssignFile(F, 'file.txt'); Writeln(f, 'String1'); CloseFile(f); end;


Ошибка ввода/вывода вот на этой строке:
Цитата
Writeln(f, 'String1')


а потом вот на этой:
Код
CloseFile(f)

qstn.gif

Это сообщение отредактировал(а) bartram - 3.8.2004, 09:41


--------------------
В каждом из нас спит гений, но с каждым днем все крепче ;-)
bartram.ru
Twitter
user posted image 

PM MAIL ICQ   Вверх
dvamaster
Дата 3.8.2004, 10:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 559
Регистрация: 30.6.2004
Где: Россия : Курган

Репутация: 3
Всего: 10



А кто открывать будет?

Код
Reset(f)


Это сообщение отредактировал(а) dvamaster - 3.8.2004, 10:02


--------------------
Хорошую информацию трудно добыть. Сделать с ней что-нибудь - еще труднее. /L. Skywalker/

Что же я сделал не так? /Король Лир/

Я делаю это для твоего же блага! /Любой родитель и палач/

PKUNZIP.ZIP /неизвестный/
PM MAIL WWW ICQ   Вверх
SlaUr
Дата 3.8.2004, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 408
Регистрация: 18.9.2003

Репутация: 3
Всего: 5



Не Reset (мы же открываем файл на запись ) а Rewrite(f) - создание нового файла или Append(F) (если мне не изменяет память ) для окрытия существующего файла и добавления информации в конец файла.

Это сообщение отредактировал(а) SlaUr - 3.8.2004, 10:54
PM MAIL   Вверх
RA
Дата 3.8.2004, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

Репутация: 14
Всего: 115




Вот так можно:

Код

procedure WriteInFile(fname,text: string);
var
 F: File;
 buf: array[0..2500] of Char;
 I : integer;
begin
   AssignFile(F, fname);
   Reset(f,1);
   Seek(F, system.filesize(F) );
   for i:=1 to length(text) do buf[i-1]:=text[i];
   BlockWrite(F, buf, length(text));
   CloseFile(F);
end;


ps: про buf[i-1] толи spawn толи alex-co подсказал.
PM   Вверх
p0s0l
Дата 3.8.2004, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 58
Всего: 112



Что-то не понял, а где тут WinAPI ?
Только Перчилла написал пример на WinAPI, но опять же на Си, и опять же, неправильный (как я понимаю) - открывается на чтение (GENERIC_READ), но потом в него пишется (WriteFile)


--------------------
С уважением, г-н Посол.
PM   Вверх
RA
Дата 3.8.2004, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

Репутация: 14
Всего: 115



p0s0l многие говоря WinApi подразумевают без использования SysUtils,Forms и др. unitov.

Ну а ежели апи, то так:
Код


procedure write2file(fname, text: string);
var SizeWritten , hFileWrite: Cardinal;
 x: pchar;
 F:File;
begin
 AssignFile(F, fname);
 Reset(f,1);
 SizeWritten :=  system.filesize(F);
 CloseFile(f);
 hFileWrite := CreateFile(@fname[1], GENERIC_READ or GENERIC_WRITE, FILE_SHARE_READ or FILE_SHARE_WRITE, nil, CREATE_ALWAYS, FILE_ATTRIBUTE_ARCHIVE, 0);
 x := @text[1];
 WriteFile(hFileWrite, x^, length(text),SizeWritten , nil);
 CloseHandle(hFileWrite);
end;

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0893 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.