Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 03.01.2022, 14:17
Katerina1993 Katerina1993 вне форума
Прохожий
 
Регистрация: 22.09.2018
Сообщения: 11
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Как происходит преобразования чисел из данных внешнего документа figure.txt?

Здравствуйте, у меня есть файл в котором хранятся значения фигуры (figure.txt).
Цитата:
2.12151364375213E+0001
-4.65241027215574E-0001
1.24533965323114E+0001
2.21470432354003E+0001
-1.35650478231506E+0001
5.17833965543514E+0001
2.52214176162443E+0001
-1.15183292003216E+0001
3.76599590303214E+0001
2.57543176121343E+0001
-1.12383293127446E+0001
С помощью Delphi я загружаю этот файл и считываю содержимое файла, а потом сохраняю значения в разные документы.A,B,C. После сохранения если открыть документы “a.txt, b.txt и c.txt”, то я получу следующее содержимое.
Документ “a.txt”
Цитата:
21,2151364375213
22,1470432354003
25,2214176162443
25,7543176121343
Документ “b.txt”
Цитата:
-0,465241027215574
-13,5650478231506
-11,5183292003216
-11,2383293127446
Документ “c.txt”
Цитата:
12,4533965323114
51,7833965543514
37,6599590303214
0
Вопрос: Как содержимое изначального документ figure.txt преобразовывается в цифры которые записываются в исходный файл? Наверное существует какая-то формула или специальный парсинг этих чисел. Мне интересен исходный код, этого преобразования.
Вот мой пример:
Код:
unit Unit1;

interface

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

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

var
  Form1: TForm1;
  f:TextFile;

implementation

{$R *.dfm}

procedure SaveToFile(file1:string;str:string);
var
 f:TextFile;
 FileDir:String;
begin
 FileDir:='c:\docum\'+file1;
AssignFile(f,FileDir);
if not FileExists(FileDir) then
 begin
  Rewrite(f);
  CloseFile(f);
 end;
Append(f);
Writeln(f,str);
Flush(f);
CloseFile(f);
end;

procedure TForm1.FormShow(Sender: TObject);
var
  a,b,c:Extended;
begin
   AssignFile(f,'figure.txt');
   Reset(f);
    while not EOF(f) do
    begin
      Read(f,a,b,c);
      SaveToFile('a.txt',FloatToStr(a));
      SaveToFile('b.txt',FloatToStr(b));
      SaveToFile('c.txt',FloatToStr(c));
    end;
    CloseFile(f);
end;

end.
Ответить с цитированием
  #2  
Старый 04.01.2022, 04:47
Аватар для Kailon
Kailon Kailon вне форума
Активный
 
Регистрация: 06.06.2010
Сообщения: 339
Версия Delphi: 10.4
Репутация: 429
Сообщение

Цитата:
Сообщение от Katerina1993
Наверное существует какая-то формула или специальный парсинг этих чисел. Мне интересен исходный код, этого преобразования.
Какую формулу Вы тут хотите увидеть? У Вас в исходном файле представлена экспоненциальная запись числа. Число до буквы Е умножается на 10 в степени 1 или -1, вот и всё. Конкретно в Вашем случае запятая переносится на один знак влево (при -1) или в право (при 1).
__________________
Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете.

Последний раз редактировалось Kailon, 04.01.2022 в 04:50.
Ответить с цитированием
  #3  
Старый 11.01.2022, 03:10
Katerina1993 Katerina1993 вне форума
Прохожий
 
Регистрация: 22.09.2018
Сообщения: 11
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Спасибо, разобралась
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 14:14.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter