Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];

Вниз

Строки   Найти похожие ветки 

 
Дима   (2004-05-12 00:23) [0]

У меня вот такая проблема нужно написать процедуру которая делает вот что: любой текст турбо паскаля (Хранящийся в файле на диске) написан в строчку и эта процедура должна загружать этот файл с диска и распечатывать на экране т.е в Memo текст турбо паскаля таким образом,чтоб в каждой строке размещался только один оператор.Также эта процедура должна организовывать смещение операторов относительно операторных скобок,как это принято в Паскале.У меня эта процедура есть вот она:
procedure TForm1.Button1Click(Sender: TObject);
const
   mas:array [1..4]of string=("Const","type","label","uses");
   e="End";
var
 st1,st2,st3,vs:string;
 f1:TextFile;
 i,j:integer;
begin
   assignFile(f1,FileName);
   rewrite(f1);
   st1:=memo1.Lines[1];
   if pos("Program",st1)<>0 then
      st2:=copy(st1,1,pos(";",st1));
   writeln(f1,st2);
   delete(st1,1,pos(";",st1));
   st2:=copy(st1,1,pos(";",st1));
   for j:=1 to 4 do
      begin
           if vs=mas[j] then
              begin
                   st1:=vs+" "+st1;
                   st2:=copy(st1,1,pos(";",st1));
              end;
           writeln(f1,st2);
           delete(st1,1,pos(";",st1));
           st2:=copy(st1,1,pos(";",st1));
      end;
   writeln(f1,st2);
   delete(st1,1,pos(";",st1));
   st2:=copy(st1,1,pos(";",st1));
   if st1="var" then
      st2:=copy(st1,1,pos("begin ",st1));
   writeln(f1,st2);
   delete(st1,1,pos("begin ",st1));
   st2:=copy(st1,1,pos("begin ",st1));
   if st1="begin" then
      st2:=copy(st1,1,pos("  ",st1));
   writeln(f1,st2);
   delete(st1,1,pos("  ",st1));
   st2:=copy(st1,1,pos("  ",st1));
   st1:=memo1.Lines[4];
   repeat
      st1:=Memo1.Lines[i];
      st2:=copy(st1,1,pos(";",st1));
      writeln(f1,st2);
      delete(st1,1,pos(";",st1));
      st2:=copy(st1,1,pos(";",st1));
      i:=i+1;
   until length(st1)=0;
   If st1=e then
      st2:=copy(st1,1,pos(".",st1));
   writeln(f1,st2);
   delete(st1,1,pos(".",st1));
   st2:=copy(st1,1,pos(".",st1));
   CloseFile(f1);
   reset(f1);
   while not Eof(f1) do
      begin
           readln(f1,st2);
           Memo1.Lines.Add(st2);
      end;
end;

end.

Но она не выводит весь текст а только часть его.Вот сам текст"Program B25Z6;Uses crt;Var s,t:string[10];i,n:integer;begin  clrscr;writeln("Input text");
readln(s);end;"
И вот что эта процедура сним делает
"Program B25Z6;
Uses crt;
Var s,t:string[10];
i,n:integer;
begin  clrscr;
writeln("Input text");"

P.S. Текст можно использовать любой.
Она выводит текст но недоконца и нет смещение операторов.Просмотрите эту процедуру и подскажите в чем моя ошибка.За ранее спасибо


 
KilkennyCat ©   (2004-05-12 04:29) [1]

матрица... дежавю... это же уже было??


 
TUser ©   (2004-05-12 06:05) [2]

Покопай архив форума



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.044 c
14-1083256946
Blackweber
2004-04-29 20:42
2004.05.23
ICQ through parent proxy


4-1081157947
Andery
2004-04-05 13:39
2004.05.23
Создание модального окна


6-1080925645
Ivolg
2004-04-02 21:07
2004.05.23
Чат


14-1083791552
saNat
2004-05-06 01:12
2004.05.23
Хоккей. США - Чехия 3-2


9-1074163759
Black Fury
2004-01-15 13:49
2004.05.23
Наконец игра в сети.Желающие могут скачать!!! :))





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский