IPB
ЛогинПароль:

> Форматтер кода, Подскажите где найти
сообщение
Сообщение #1


Я.
****

Группа: Пользователи
Сообщений: 809
Пол: Мужской
Реальное имя: Саша

Репутация: -  11  +


подскажите, пожалуйста, где можна найти такую программку, которая оформляла бы текст программы, или как такую самому сделать.
например, так:
из:
begin
a:=1;
end;

в:
begin
  a:=1;
end;

Даже как называется не знаю:)
пробовал что-то сам такое сделать за минут 10, но там столько разных вариантов...

Что-то типа такого вышло:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure into_dop_from_trimmed;
var
  fin,fout:textfile;
  str:string;
begin
  assignfile(fin,Form1.edit1.Text+'(Trimmed).PAS');
  reset(fin);
  assignfile(fout,'dop.txt');
  rewrite(fout);
  while not Eof(fin) do
    begin
      readln(fin,str);
      writeln(fout,str);
    end;
  Closefile(fout);
  Closefile(fin);
end;

function min(a,b:byte):byte;
begin
  if a<=b then min:=a
  else min:=b;
end;

(*После каждой точки с запятой перенос на новую строку*)
procedure into_new_line;
var
  fin,fout:textfile;
  str:string;
  position:byte;
begin
  assignfile(fin,Form1.edit1.Text+'.PAS');
  reset(fin);
  assignfile(fout,Form1.Edit1.Text+'(Trimmed).PAS');
  rewrite(fout);
  while not Eof(fin) do
    begin
      readln(fin,str);
      repeat
        if pos(';',str)=0 then Position:=Length(str)
        else Position:=pos(';',str);
        writeln(fout,Copy(str,1,Position));
        Delete(str,1,Position);
        while (0<Length(str))and(str[1]=' ') do Delete(str,1,1);
      until str='';
    end;
  Closefile(fout);
  Closefile(fin);
end;

(*Отступы перед каждой строкой*)
procedure otstup;
const Dlina_otstup=2;
var
  fin,fout:textfile;
  str:string;
  i,kol_otstup:byte; (*Количество отступов*)
begin
  into_dop_from_trimmed;
  kol_otstup:=0;
  assignfile(fin,'dop.txt');
  reset(fin);
  assignfile(fout,Form1.Edit1.Text+'(Trimmed).PAS');
  rewrite(fout);
  while not Eof(fin) do
    begin
      readln(fin,str);
      if (pos('end',str)<>0)then if kol_otstup>0 then dec(kol_otstup);
      for i:=1 to kol_otstup*Dlina_otstup do str:=' '+str;
      writeln(fout,str);
      if (pos('begin',str)<>0)or (pos('case',str)<>0)then inc(kol_otstup);
    end;
  Closefile(fout);
  Closefile(fin);
  Erase(fin);
end;



procedure TForm1.Button1Click(Sender: TObject);
begin
  into_new_line;
  otstup;
  halt;
end;

procedure TForm1.FormShow(Sender: TObject);
begin
  {edit1.SetFocus;}
end;

end.



Сообщение отредактировано: sheka -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
sheka   Форматтер кода   27.08.2009 0:32
volvo   Ты о форматтере кода? Полезные программы и утилит…   27.08.2009 1:36
sheka   Да, спасибо, о ней. Только как этим "форматте…   27.08.2009 2:45
volvo   Ей надо передавать параметры через командную строк…   27.08.2009 2:51
sheka   Разберешься? Врядли. На сколько я понял надо з…   27.08.2009 3:10
generic zithromax over the count   Zythromax Vs Cephalexin   26.09.2021 21:23
volvo   Взял неформатированный файл (без отступов вообще),…   27.08.2009 3:27
sheka   Класс, супер, то что хотел! Только один вопрос…   27.08.2009 4:18
volvo   Я вот так делаю:   27.08.2009 4:35
sheka   Понял, спасибо. т.е. надо поставить сначала перена…   27.08.2009 4:39
maksimla   а может есть такае же программа сделана на Дельфи …   26.10.2009 20:25
volvo   Ну, напиши оболочку на Дельфи, которая будет дават…   26.10.2009 20:58
maksimla   Не знаю я Дельфи языка еще вот в этом вся проблема…   27.10.2009 13:38
volvo   Ну, вот тебе оболочка: Кладешь оба EXE-шника в од…   28.10.2009 5:39
Jabbson   Было бы здорово добавить функцию "убрать форм…   28.05.2010 3:57
buy cialis online with prescript   cialis walmart   5.09.2021 10:00
volvo   Вот так что-ли? <файл удален...>   28.05.2010 5:52
Jabbson   Вот так что-ли? Да, класс!!! Тепер…   18.07.2010 15:07
volvo   Долго думал, почему такое происходит. Потом сообра…   2.08.2010 2:26
volvo   Продолжаем. Итак, просьба потестировать программку…   7.09.2010 19:26
Федосеев Павел   Недавно, отвечая на вопрос, попытался отформатиров…   20.01.2013 21:54
nishaknapp   The quality and quantity of work produced here are…   5.01.2023 13:46


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 8.04.2025 1:48
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name