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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.08.2011, 21:06   #1
hon
Форумчанин
 
Регистрация: 08.06.2011
Сообщений: 693
Смущение Неправиьльно записывается файл (закрыть не забываю)

Вот программа, записывающая в файл F:\proba.html HTML-документ:
Код:
unit Strokosozdatel;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    LabeledEdit1: TLabeledEdit;
    ProgressBar1: TProgressBar;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}


procedure TForm1.Button1Click(Sender: TObject);
var f:textfile;
kolvo,vyp,err:integer;
i:String;
begin
     Val(LabeledEdit1.Text,kolvo,err); vyp:=1; ProgressBar1.Max:=kolvo;
     Assignfile(f,'F:\proba.html');
     Rewrite(f);
     Writeln(f,'<html>');
     Writeln(f,'<hear>');
     Writeln(f,'<title>Страница<title>');
     Writeln(f,'</hear>');
     Writeln(f,'<body>');
     Writeln(f,'<ol> type="I"');
     while vyp<>kolvo do
           begin
           Str(vyp,i);
           Writeln(f,'<li>'+i);
           vyp:=vyp+1;
           ProgressBar1.Position:=vyp;
           end;
     Writeln(f,'</ol>');
     Writeln(f,'<body>');
     Writeln(f,'</html>');
     Closefile(f);
     MessageDlg('Выполнено.',mtInformation,[mbOk],0);
end;


end.
Форма:

Код:
object Form1: TForm1
  Left = 164
  Top = 114
  BorderStyle = bsSingle
  Caption = 'Form1'
  ClientHeight = 446
  ClientWidth = 771
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'MS Sans Serif'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
  object Label1: TLabel
    Left = 8
    Top = 216
    Width = 43
    Height = 13
    Caption = 'Прогресс'
  end
  object Button1: TButton
    Left = 328
    Top = 128
    Width = 81
    Height = 25
    Caption = 'Создать файл'
    TabOrder = 0
    OnClick = Button1Click
  end
  object LabeledEdit1: TLabeledEdit
    Left = 176
    Top = 128
    Width = 121
    Height = 21
    EditLabel.Width = 66
    EditLabel.Height = 13
    EditLabel.Caption = 'Кол-во строк'
    TabOrder = 1
  end
  object ProgressBar1: TProgressBar
    Left = 8
    Top = 232
    Width = 753
    Height = 25
    Align = alCustom
    TabOrder = 2
  end
end.
После записи должен получится такой файл:
Код:
<html>
<hear>
<tiltle>Страница<title>
</hear>
<body>
<ol> type="I"
<li>1
<li>2
........
</ol>
</body>
</html>
А у меня получается такой короткий файл:
Код:
type="I"
Где ошибка в программе?
hon вне форума Ответить с цитированием
Старый 03.08.2011, 21:09   #2
LSpirit
Пользователь
 
Регистрация: 19.07.2011
Сообщений: 28
По умолчанию

просто как вариант: а если записать все в Мемо и потом сохранить Мемо в нужный файл? формат же ему не важен
Цель оправдывает средства.
LSpirit вне форума Ответить с цитированием
Старый 03.08.2011, 21:15   #3
hon
Форумчанин
 
Регистрация: 08.06.2011
Сообщений: 693
По умолчанию

Цитата:
Сообщение от LSpirit Посмотреть сообщение
просто как вариант: а если записать все в Мемо и потом сохранить Мемо в нужный файл? формат же ему не важен
Спасибо за вариант, но вопрос в другом. (Вопрос еще открыт!)
hon вне форума Ответить с цитированием
Старый 03.08.2011, 21:30   #4
LSpirit
Пользователь
 
Регистрация: 19.07.2011
Сообщений: 28
По умолчанию

в открытии через Word в файле видны только цифры до цифры, на одну меньшей, чем указываешь. в открытии через оперу, на вкладке пишется все то, что ты написал должно быть в файле

открой файл через блокнот и увидишь, что все пишется

если я правильно понял задачу твоей программы, то у тебя половина кода лишняя, можно было гораздо проще, но я копировал себе код, ничего не менял и вот результат для цифры 7 в файле proba.html, открытом через блокнот:
Код:
<html>
<hear>
<title>Страница<title>
</hear>
<body>
<ol> type="I"
<li>1
<li>2
<li>3
<li>4
<li>5
<li>6
</ol>
<body>
</html>
Цель оправдывает средства.

Последний раз редактировалось Stilet; 04.08.2011 в 09:13.
LSpirit вне форума Ответить с цитированием
Старый 04.08.2011, 08:06   #5
grafgrial
Просто хороший
Форумчанин
 
Аватар для grafgrial
 
Регистрация: 26.03.2010
Сообщений: 562
По умолчанию

Цитата:
Writeln(f,'<hear>');
это что за строка то? мда может head
Помог, нажми весы слева
grafgrial вне форума Ответить с цитированием
Старый 04.08.2011, 09:16   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
а если записать все в Мемо и потом сохранить Мемо в нужный файл?
А лучше в StringList.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.08.2011, 13:54   #7
hon
Форумчанин
 
Регистрация: 08.06.2011
Сообщений: 693
Счастье

Цитата:
Сообщение от grafgrial Посмотреть сообщение
это что за строка то? мда может head
спасибо. Я ещё забыл title закрыть, +1 дописать...
hon вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему вместо посчитанной суммы, в файл записывается непонятная абракадабра? ЛерочкаPj Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 5 31.05.2011 19:22
Закрыть файл макросом (массив) Lopatin Microsoft Office Excel 5 03.03.2011 20:24
Как закрыть файл при закрытии программы r_yevgeniy Общие вопросы Delphi 3 23.03.2010 11:28
Как записывается дробное число. Altera Свободное общение 2 18.12.2009 20:30
Диалоги открыть/закрыть файл Altera Операционные системы общие вопросы 3 03.12.2008 01:18