|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Непонятная штука, строки...
Всем привет... Студент второго курса математик-программист) Задача проще простого, но на делфи почему то отказывается работать правильно... Пожалуйста объясните почему? Написал эту же программу на паскаль, все работает идеально...
Условие задачи:Дан файл f, компоненты которого являются действительными числами. Получить в файле g все компоненты файла f, сумма первой и второй цифр дробной части которых равна 7. Прошу прощения за громоздкое оформление темы.... Код:
unit Lab2Un; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); var f,g:textFile;t1,t2,k1,k2:integer; h: real; begin AssignFile(f, 'E:\Delphi\Lab2\TExt1.txt'); AssignFile(g, 'E:\Delphi\Lab2\TExt2.txt'); reset(f); rewrite(g); while not eof(f) do begin read(f, h); Label2.Caption:=Label2.Caption+FloatToStr(h)+' '; if eoln(f) then Label2.Caption:=Label2.Caption+#13; t1:=trunc(h*100); k1:=t1 mod 10; t2:=trunc(h*10); k2:=t2 mod 10; if k1+k2=7 then write(g, h:7:2); end; reset(g); while not eof(g) do begin read(g, h); Label4.Caption:=Label4.Caption+FloatToStr(h)+' '; if eoln(g) then Label4.Caption:=Label4.Caption+#13; end; closeFile(f); closeFile(g); end; end. |
#2
|
||||
|
||||
У вас ведь текстовый файл, с ним нужно так
Код:
procedure TForm1.FormCreate(Sender: TObject); var f: textFile; th: string; begin AssignFile(f, 'E:\Delphi\Lab2\TExt1.txt'); Reset(f); while not eof(f) do begin ReadLn(f, th); Label2.Caption:= Label2.Caption + th + ' '; if (Pos(',', th) + 2 = Length(th)) and (StrToInt(th[Length(th) - 1]) + StrToInt(th[Length(th)]) = 7) then label4.Caption:= Label4.Caption + th + ' '; end; CloseFile(f); end; Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#3
|
|||
|
|||
Цитата:
|