Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.08.2011, 10:41   #1
Зод
Форумчанин
 
Регистрация: 25.08.2011
Сообщений: 140
По умолчанию FileWrite

Код:
var
    FileHandle, i: Integer;
    mas: array[0..99] of byte;
begin
    for i:= 0 to 99 do mas[i]:= 0;
    FileHandle:= FileCreate ( 'my.txt');
    FileWrite( FileHandle, mas, 100);
    FileSetDate( FileHandle, DateTimeToFileDate( StrToDateTime( '31.12.99 23:59')));
    FileClose( FileHandle)
end.
Создает файл и т.д. Все нормально выполняется. Вопрос в другом как произвести запись в созданный файл?
Пытаюсь сделать через это:
Код:
function FileWrite(var Str : String; StartingIndex, Count : Integer);
Тогда возникает вопрос другой. Если Count записывает в файл значение из Buffer то как назначить текстовое значение буфферу? и есть ли пути решения этой проблемы по проще?
А если вот так выполнить то в файл попадает и дата создания и другая квадратица-непонятица.
Код:
var
    FileHandle, i: Integer;
    mas: array[0..99] of byte;
begin
    for i:= 0 to 99 do mas[i]:= 0;
    FileHandle:= FileCreate( 'my.bat');
    FileWrite( FileHandle, 'echo start', 101);
    FileSetDate( FileHandle, DateTimeToFileDate( StrToDateTime( '11.04.2005 23:13')));
    FileClose( FileHandle)
end.

Последний раз редактировалось Зод; 29.08.2011 в 10:52. Причина: Дополнение
Зод вне форума Ответить с цитированием
Старый 29.08.2011, 12:05   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А что? Стандартные средства Делфи записи в файл уже не в моде?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.08.2011, 12:10   #3
Зод
Форумчанин
 
Регистрация: 25.08.2011
Сообщений: 140
По умолчанию

Ну я сам и только учусь программировать в делфи. Если обьясните стандартные средства создания и редактирвоания файлов то буду очень признателен.
Зод вне форума Ответить с цитированием
Старый 29.08.2011, 12:28   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

справка уже тоже не в моде? Обязательно дёргать людей, чтобы они за вас открывали справку и цитировали?

Ладно, хватит сорказма

В общем есть очень простой класс TStringList Модуль Classes(Подключен к проекту по дефолту).

Код:
var
  Ts:TstringList;
begin

ts:=TStringList.Create;
try
Ts.LoadFromFile(); //Путь к файлу
ts.add(); //Добавить строку
ts.Delete(n); //Удалить строеу где n номер строки
ts.saveToFile(); //Путь к файлу
finally
FreeAndNil(ts);
end;
end;
Ну а дальше справка в руки и изучайте класс.
Человек_Борща вне форума Ответить с цитированием
Старый 29.08.2011, 12:39   #5
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,869
По умолчанию

вот тебе запись в файл:
Код:
var F:File;
     i:Integer;//номер позиции, куда ведётся запись в файле
    str:Char;//символ для записи или набор символов можно сделать
begin
AssignFile(F,'Новый.txt');
Reset(F,1);
Seek(F,i);
BlockWrite(F,str,1);
CloseFile(F);
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума Ответить с цитированием
Старый 29.08.2011, 16:03   #6
Зод
Форумчанин
 
Регистрация: 25.08.2011
Сообщений: 140
По умолчанию

Спасибо огромное.
А вот еще вопрос у меня есть.
Код:
procedure TForm1.N6Get(Sender:TObject);
begin
ShellExecute(Handle, 'open', PChar('1.txt'), nil, nil, SW_SHOW);
end;
Компилируется без ошибок но при запуске программы ни каких действий не происходит ( а ведь вроде должен открыться блокнотом 1.txt файл)
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
ShellExecute(Handle, 'open', PChar('1.txt'), nil, nil, SW_SHOW);
end;
А это тоже самое только при нажатии кнопки. И вот как раз при нажатии файл открывается на ура.
Что я делаю не так в первом коде? А то кнопки мне ведь не нужны, мне нужно что бы файл сам открывался.
Зод вне форума Ответить с цитированием
Старый 29.08.2011, 16:07   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
TForm1.N6Get
а что это за событие, на котором у Вас висит этот обработчик?!
Если это событие не происходит, то и код, соответственно, не выполняется!

p.s. если я правильно понял, "вешайтесь" на событие формы OnCreate...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.08.2011, 16:22   #8
Зод
Форумчанин
 
Регистрация: 25.08.2011
Сообщений: 140
По умолчанию

Код:
unit Unit1;

interface

uses
  Windows, ShellApi, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
  procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
ShellExecute(Handle, 'open', PChar('1.txt'), nil, nil, SW_SHOW);
end;

end.
Я правильно понял как подключаются к форме OnCreate?
Все равно файл автоматом не открывается...

Последний раз редактировалось Зод; 29.08.2011 в 16:41.
Зод вне форума Ответить с цитированием
Старый 29.08.2011, 17:28   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Все равно файл автоматом не открывается...
А ты полный путь к нему пропиши. Он у тебя где находится, рядом с программой? тогда
Код:
PChar(ExtractFilePath(ParamStr(0))+'1.txt')
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.08.2011, 18:39   #10
Зод
Форумчанин
 
Регистрация: 25.08.2011
Сообщений: 140
По умолчанию

Код:
unit Unit1;

interface

uses
  Windows, ShellApi, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
  procedure N6Get (Sender:TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
procedure TForm1.N6Get(Sender:TObject);
begin
ShellExecute(Handle, 'open', PChar('1.txt'), nil, nil, SW_SHOW);
end;

end.
Что не правильно? Почему не выпонляется запуск?
А насчет полного пути он все равно не действует, видимо процедура не подключенна...а как ее подключить? Пробовал задавать параметрами
Код:
unit Unit1;

interface

uses
  Windows, ShellApi, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
  procedure N6Get (Sender:TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
procedure TForm1.N6Get(Sender:TObject);
begin
ShellExecute(Handle, 'open', PChar('1.txt'), nil, nil, SW_SHOW);
end;
procedure N6Get(sender:TObject);
begin

end;
end.
Она не обьявлена или что? Почему все что описано в процедурах не работает?
____

да, файл в папке с программой.
Зод вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемы с функцией FileWrite Миша Общие вопросы Delphi 5 30.05.2009 19:49
Как при использовании FileWrite перейти на новую строку? Artem Win Api 4 03.09.2007 17:02
FileWrite - запись в файл Toxa Общие вопросы Delphi 3 07.02.2007 11:03