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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.12.2008, 20:40   #1
serguna005
 
Регистрация: 05.12.2008
Сообщений: 4
Восклицание из одного текстового файла виделить цифры и поместить в другой(пустой) файл

Вот программа которая позволяет из одного текстового файла виделить цифры и поместить в другой(пустой) файл, проблема в том что когда цифра находится рядом с буквой(т.е не разделена пробелом),она не считывается во 2-ой файл,целую неделю парюсь не знаю что делать ,помогите....
program proga;
uses crt;
var
t1,t2:text;
i,i1,ch,g,t:integer;
s:string;
str:string;
const
alpha=['0'..'9',','];
begin
clrscr;
Assign(t1,'C:\text.txt');
Assign(t2,'C:\text2.txt');
Reset(t1); {otkryvaem fail}
Rewrite(t2);{otkryvaem vtoroi dlya zapisi}
while not eof(t1) do
Readln(t1,s);{schityvaem iz pervogo faila v s}
str:='';
ch:=0;
i:= 0;
for i:=0 to length(s) do
begin
if s[i]<>' ' then
begin
str:=str+s[i];
end else
begin
g:=i;
ch:=ch+1;
t:=0;
i1:=1;
for i1:=1 to length(str) do
begin
if str[i1] in alpha
then t:=t+1;
end;
if t=length(str) then begin
i:=1;
t:=0;
for i:=1 to length(str) do
if str[i]=',' then
t:=1;
writeln(t2,'poziziya ',ch);
writeln(t2,'znachenie ',str);
if t=0 then
begin
writeln(t2,' tip-zeloe chislo');
writeln(t2);
end else
begin
writeln(t2,' tip -veshestvennoe chislo');
writeln(t2);
end;
end;
str:='';
i:=g;
end;end;
Close(t1);Close(t2);
end.
serguna005 вне форума Ответить с цитированием
Старый 05.12.2008, 21:09   #2
serguna005
 
Регистрация: 05.12.2008
Сообщений: 4
По умолчанию

В принципе, это приславутый лексический анализатор, но только анализирует числа.
serguna005 вне форума Ответить с цитированием
Старый 07.12.2008, 20:55   #3
|{ot
Форумчанин
 
Аватар для |{ot
 
Регистрация: 09.03.2008
Сообщений: 127
По умолчанию

я бы для удобства файл т1 открывал как file of char вот примерчик:
Код:
uses crt;

const
     alpha=['0'..'9',','];

var
   t1 : file of char;
   t2 : Text;

   pos : word;

   st : string;

   ch : char;

   tip : boolean;{true если число вещественное}

begin

     assign(t1,'c:\text.txt');
     assign(t2,'c:\text2.txt');

     {i-}

     reset(t1);
     if ioresult<>0 then 
        begin
             write('pomulka robotu z failom');
             readkey;
             exit;
        end;
     {i+}

     rewrite(t2);

     st:='';
     pos:=0;
     tip:=false;

     while not eof(t1) do
          begin
           read(t1,ch);
           inc(pos);

           if ch in alpha then
              begin
               while (ch in alpha)and(not eof(t1))do begin
                if ch=',' then tip:=true;
                st:=st+ch;
                read(t1,ch);
               end;
              writeln(t2,'pozicia=',pos);
              writeln(t2,'znachenie=',st);
              if tip then writeln(t2,'tip=real')
                 else writeln(t2,'tip=integer');
              writeln(t2);
              pos:=pos+length(st);
              st:='';
              tip:=false;
             end;

          end;
     close(t1);
     close(t2);
end.
Цитата:
for i:=0 to length(s) do
здесь нужно for i:=1 to length(s) do
поскольку в s[0] хранится к-во символов строки.
|{ot вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как из двух DBGridов, выбрав необходимые данные, поместить в другой DBGrid Самоучка БД в Delphi 19 09.12.2008 23:23
Требуется написать программу которая переводит файл из одного вида в другой sarudan Помощь студентам 1 11.09.2008 16:17
Требуется написать программу для перевода файла из одного вида в другой, вознагрождение гарантируется sarudan Фриланс 2 02.03.2008 23:30
Передача файла с одного компа на другой Kocapb Фриланс 4 18.11.2007 18:37