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

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> текстовой файл, перенос
Work Group
сообщение 27.12.2009 19:33
Сообщение #1


Новичок
*

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

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


можете пожайлуста помочь с задачей....я её сделал,но препод не принял..сказал всё переделать...

задача заключается втом, чтобы мы бради тестовой файл,задали сколько символов должно быть в строчках,и всё переписали в новый текстовой файл,с n символов в строчках...и если у нас строчка 10 символов,а мы взяли n=4,то он нам должен выдать две строчки по 4 символа, и одну строчку с 2-мя...

что от меня теперь требуют...чтобы сразу открывали 2 текстовых файла, задали n,и начали по-символьно переносить из одного в другой..когда у нас в новым строчка станет из n символов,то там у нас будет переход на новую строчку...вот как-то так...

если кому интересно,вот что было у меня...

Код
uses crt;
function fcopy(a:string; x,y:word):string; //copy function
  var i,j:byte;
  Begin
    j:=1;
    Setlength(result,(y-x+1));
    if (y>length(a)) then Setlength(result,length(a));
    for i:=x to y do
      begin
       result[j]:=a[i];
        inc(j);
      end;
  End;

function fdelete(var a:string; x,y:word):boolean;  //delete function
  var i,j:byte;
      b:string;
  Begin
    j:=1;
    Setlength(b,(length(a)-y+x-1));
   for i:=1 to length(a) do
      begin
        if ((i<x) or (i>y)) then
          begin
            b[j]:=a[i];
            inc(j);
          end;
      end;
    a:=b;
    result:=true;
  End;

var t,f:text;
    t1,t2,g,a: string;
    n:integer;


BEGIN
   //writeln ('введите путь к файлу');
   //readln (t1);
   t1:='H:\t.txt';
   //writeln ('введите путь к новому файлу');
  //readln (t2);
  t2:='H:\t1.txt';
  //writeln ('введите длинну строк');
   //readln(n);
  n:=5;
  assign(t,t1);
  reset(t);
  assign(t,t1);
  reset(t);
  assign(f,t2);
  rewrite(f);

  while not eof(t)
do
    begin
      a:='';
      readln(t,a);
      while length(a)>n do
        begin
          g:='';
          g:=fcopy(a,1,n);
          fdelete(a,1,n);
          writeln(f,g);
        end;

    end;

  close (f);
  close (t);

END.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Ozzя
сообщение 28.12.2009 11:52
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 220
Пол: Мужской

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


Цитата
я её сделал

Не верю! (С) Станиславский

Начиная отсюда
Setlength(result,(y-x+1));
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Work Group
сообщение 29.12.2009 0:00
Сообщение #3


Новичок
*

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

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


ну попробуй...
в делфи скопируй и проверь...
всё работает...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Ozzя
сообщение 29.12.2009 9:36
Сообщение #4


Гуру
*****

Группа: Пользователи
Сообщений: 1 220
Пол: Мужской

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


И что, компилятор Delphi даже не отругался на 1-ю строчку?
uses crt;
?
Впрочем, спорить не буду. Работает, так работает.
Удачи.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Work Group
сообщение 30.12.2009 1:45
Сообщение #5


Новичок
*

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

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


вот это признаю...первоначально делал в паскале абс...потом всё перенёс в делфи...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
maksimla
сообщение 30.12.2009 15:30
Сообщение #6


Знаток
****

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

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


вот я взял с файла одного строчку одну потом написал сколько должно быть в строчке символов и во второй файл переписал и закрыл два файла. и переносил по символьно. Программа сделана на fpc 1.06+ должна на всех паскалях идти
program delim;
var d,r:text;
s:string;
n,i,j:integer;
begin
assign (d, 'duom.TXT');
assign (r, 'rez.TXT');
reset (d);
rewrite ®;
readln(d,s);
writeln('zadaite skolko dolzno biti simbolov v strocke');
readln(n);
j:=0;
for i:=1 to length(s)do
begin
if j<n then begin write(r,s[i]); inc(j); end
else begin i:=i-1; writeln®; j:=0; end;
end;
close(d);
close®;
end.

ну что подходит?


--------------------
Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 30.12.2009 15:42
Сообщение #7


Гость






Цитата
Программа сделана на fpc 1.06+ должна на всех паскалях идти
Выкини в мусорку свой FPC 1.06, если он вот такое пропускает:
Цитата
  for i:=1 to length(s)do
begin
if j<n then begin write(r,s[i]); inc(j); end
else begin i:=i-1; { <--- !!! } writeln( r ); j:=0; end;
end;
На нормальном компиляторе это даже не откомпилируется.
 К началу страницы 
+ Ответить 
maksimla
сообщение 30.12.2009 16:41
Сообщение #8


Знаток
****

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

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


Цитата(volvo @ 30.12.2009 14:42) *

Выкини в мусорку свой FPC 1.06, если он вот такое пропускает:
На нормальном компиляторе это даже не откомпилируется.

хотелось бы но мне еще на нем пол года учится потому что на нем проверяют задания
вот исправил на FPC 2.2.4
program delim;
var d,r:text;
s:string;
n,i,j:integer;
begin
assign (d, 'C:\Users\Maksim\Desktop\jpm\duom.TXT');
assign (r, 'C:\Users\Maksim\Desktop\jpm\rez.TXT');
reset (d);
rewrite (r );
readln(d,s);
writeln('zadaite skolko dolzno biti simbolov v strocke');
readln(n);
j:=0;
for i:=1 to length(s)do
begin
if j<n-1 then begin write(r,s[i]); inc(j); end
else begin write(r,s[i]); writeln(r ); j:=0; end;
end;
close(d);
close®;
end.


теперь нормально должно все быть? У меня чего то не хотело читаться просто Duom.txt пришлось делать C:\Users\Maksim\Desktop\jpm\duom.TXT почему так ведь программка было там же где и текстовый файл почему ?
вот как я ошибки допуская и не задумываюсь на FPC 1.0.6+

Сообщение отредактировано: maksimla - 30.12.2009 16:43


--------------------
Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



- Текстовая версия 28.04.2024 1:19
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"