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

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

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

> текстовой файл, разбивка
Work Group
сообщение 6.12.2009 23:58
Сообщение #1


Новичок
*

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

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


не можите помочь с одной задачкой....делаю делаю..полная фигня получается...
задача заключается в том,что бы в результирующий файл переписать содержимое текстового файла, разбив строки,содержащие более n символов на несколько...то есть строки в файле должны содержать n символов
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 7)
volvo
сообщение 7.12.2009 0:32
Сообщение #2


Гость






Цитата
делаю делаю..полная фигня получается...
Можно посмотреть, что именно ты делаешь? Как решаешь эту задачу?
 К началу страницы 
+ Ответить 
Work Group
сообщение 7.12.2009 0:46
Сообщение #3


Новичок
*

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

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


Цитата(volvo @ 7.12.2009 0:32) *

Можно посмотреть, что именно ты делаешь? Как решаешь эту задачу?

лучше не надо...полная чушь...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 7.12.2009 0:49
Сообщение #4


Гость






Ну, как знаешь... Тогда решай дальше...

Кстати, я уже решал подобную задачу, прямо на этом форуме, пользуйся поискам - найдешь. Даже в двух вариациях.
 К началу страницы 
+ Ответить 
Work Group
сообщение 7.12.2009 21:17
Сообщение #5


Новичок
*

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

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


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

Код
uses crt;
var
t:text;
a:array[1..100]of string; t1,t2: string;
k,n,i:integer;
begin
writeln ('введите путь к файлу');
readln (t1);
assign(t,t1);
reset(t);
writeln ('введите длинну строк');
readln(n);
while not eof(t) do
begin
inc(k);
readln(t,a[k]);
end;
close(t);
writeln ('введите путь к новому файлу');
readln (t2);
assign(t,t2);
rewrite(t);
for i:=1 to k do
begin
  while length(a[i])>n do
   begin
   writeln(t,copy(a[i],1,n));
   delete(a[i],1,n);
   end;
  if length(a[i])>0 then  writeln(t,a[i]);
  if length(a[i])<n then  writeln(t,copy(a[i+1],1,n-length(a[i])));
  delete(a[i+1],1,n-length(a[i]));
  end;
  close (t);
  end.


проблемма в этих строчках
Код
if length(a[i])<n then  writeln(t,copy(a[i+1],1,n-length(a[i])));
  delete(a[i+1],1,n-length(a[i]));


помогите пожайлуста

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 7.12.2009 21:30
Сообщение #6


Гость






А что, просто пробежаться посимвольно (читаешь символ -> проверяешь его на #13, #10, если нет - то пишешь в выходной файл -> увеличиваешь счетчик записанных символов -> счетчик = N, тогда пишешь перевод строки и обнуляешь счетчик) - нельзя?

Твой вариант содержит слишком много недостатков: а если у меня в файле 101 строка, что делать будем? А если длина любой строки в файле больше 255 символов - что тогда?
 К началу страницы 
+ Ответить 
Work Group
сообщение 8.12.2009 14:54
Сообщение #7


Новичок
*

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

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


ну можно вот так
Код
uses crt;
var
t:text;
a:array[1..100]of string; t1,t2,g: string;
k,n,j:word;
i:integer;
Begin
//writeln ('ââåäèòå ïóòü ê ôàéëó');
//readln (t1);
t1:='H:\t.txt';
assign(t,t1);
reset(t);
//writeln ('ââåäèòå äëèííó ñòðîê');
//readln(n);
n:=4;
k:=0;
while not eof(t) do
  begin
    inc(k);
    readln(t,a[k]);
end;
close(t);

//writeln ('ââåäèòå ïóòü ê íîâîìó ôàéëó');
//readln (t2);

t2:='H:\t1.txt';
assign(t,t2);
rewrite(t);

for i:=1 to k do
begin
  while length(a[i])>0 do
    begin
       g:='';
      if length(a[i])<n then
        begin
          //g:=copy(a[i],1,length(a[i]));
          //g:=g+copy(a[i+1],1,n-length(a[i]));
          //delete(a[i+1],1,n-length(a[i]));
          //delete(a[i],1,length(a[i]));
          //writeln(t,g);
        end
      else
        begin
          g:=copy(a[i],1,n);
          delete(a[i],1,n);
          writeln(t,g);
        end;
    end;
end;

  close (t);

End.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 8.12.2009 14:58
Сообщение #8


Гость






Что "можно вот так"? Получить вылет программы? Считай, получил. А теперь переделай, чтоб вылета не было.
 К началу страницы 
+ Ответить 

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

 



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