Автор Тема: Помогите организовать текстовый файл, состоящий из n строк ...  (Прочитано 5864 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн bifshtex

  • Пользователь
  • **
  • Сообщений: 70
    • Просмотр профиля
Организовать текстовый файл, состоящий из n строк. Заменить в нем одну из строк новой строкой. Номер заменяемой сироки и содержимое новой
« Последнее редактирование: 16 Декабря 2009, 01:01:01 от Asix »

Оффлайн bifshtex

  • Пользователь
  • **
  • Сообщений: 70
    • Просмотр профиля
продолжение....
строкой. Номер заменяемой строки запрашивается и вводится с клавиатуры.

как никогда,очень нужна помощь ребят...
« Последнее редактирование: 16 Декабря 2009, 01:01:11 от Asix »

Оффлайн InfStudent

  • Модератор
  • *****
  • Сообщений: 1356
  • Куба любовь моя))
    • Просмотр профиля
Ну тут точно нужно действовать так:
1) Загружаем из файла в динам массив(Лучше сделать его многомерным)
2) Пишем все назад в файл кроме той части  массива что соответствует номеру строки нам нужной для удаления
 
« Последнее редактирование: 16 Декабря 2009, 01:01:26 от Asix »
Прежде чем задавать вопрос в раздел по программированию повтори теорию и посмотри FAQ! Просьба не кидайте задания в ЛС и не надо мне писать: "посмотри мою задачу!!!" Я смотрю все задачи в разделе когда на форуме
Учтите что подобные ЛС будут оставлены без внимания!
УКАЗЫВАЙТЕ ЯЗЫК ПРОГРАММИРОВАНИЯ НА КОТОРОМ ДОЛЖНА БЫТЬ РЕШЕНА ЗАДАЧА
Вам в помощь:
∫ ¼ ½ ¾ ⅓ ⅔ ⅛ ⅜ ⅝ ⅞ ² ³ ± ~ ‰ ∞ √ ∑ ∆ ℮ ∩ ≡ ≤ ≥ ≈ ∩

Оффлайн bifshtex

  • Пользователь
  • **
  • Сообщений: 70
    • Просмотр профиля
а без динам массива в данном случае можно обойтись?
« Последнее редактирование: 16 Декабря 2009, 01:01:32 от Asix »

Оффлайн InfStudent

  • Модератор
  • *****
  • Сообщений: 1356
  • Куба любовь моя))
    • Просмотр профиля
Ну а какие у тебя мысли?
« Последнее редактирование: 16 Декабря 2009, 01:01:38 от Asix »
Прежде чем задавать вопрос в раздел по программированию повтори теорию и посмотри FAQ! Просьба не кидайте задания в ЛС и не надо мне писать: "посмотри мою задачу!!!" Я смотрю все задачи в разделе когда на форуме
Учтите что подобные ЛС будут оставлены без внимания!
УКАЗЫВАЙТЕ ЯЗЫК ПРОГРАММИРОВАНИЯ НА КОТОРОМ ДОЛЖНА БЫТЬ РЕШЕНА ЗАДАЧА
Вам в помощь:
∫ ¼ ½ ¾ ⅓ ⅔ ⅛ ⅜ ⅝ ⅞ ² ³ ± ~ ‰ ∞ √ ∑ ∆ ℮ ∩ ≡ ≤ ≥ ≈ ∩

Оффлайн bifshtex

  • Пользователь
  • **
  • Сообщений: 70
    • Просмотр профиля
Если использовать дополнительный файл и то что нужно из 1ого записать во второй...
хотя это бред наверно, я плох в программировании...
« Последнее редактирование: 16 Декабря 2009, 01:01:43 от Asix »

Оффлайн bifshtex

  • Пользователь
  • **
  • Сообщений: 70
    • Просмотр профиля
ладно, буду думать, у препода спрошу на след паре..
если вдруг будут какие-то мысли по этому поводу, то эту тему используй как черновик)  
« Последнее редактирование: 16 Декабря 2009, 01:01:48 от Asix »

Оффлайн InfStudent

  • Модератор
  • *****
  • Сообщений: 1356
  • Куба любовь моя))
    • Просмотр профиля
Мысль правильная: запускай цикл for от 1 и до того номера который тебе нужен, а в нем readln используй  
« Последнее редактирование: 16 Декабря 2009, 01:01:53 от Asix »
Прежде чем задавать вопрос в раздел по программированию повтори теорию и посмотри FAQ! Просьба не кидайте задания в ЛС и не надо мне писать: "посмотри мою задачу!!!" Я смотрю все задачи в разделе когда на форуме
Учтите что подобные ЛС будут оставлены без внимания!
УКАЗЫВАЙТЕ ЯЗЫК ПРОГРАММИРОВАНИЯ НА КОТОРОМ ДОЛЖНА БЫТЬ РЕШЕНА ЗАДАЧА
Вам в помощь:
∫ ¼ ½ ¾ ⅓ ⅔ ⅛ ⅜ ⅝ ⅞ ² ³ ± ~ ‰ ∞ √ ∑ ∆ ℮ ∩ ≡ ≤ ≥ ≈ ∩

Оффлайн bifshtex

  • Пользователь
  • **
  • Сообщений: 70
    • Просмотр профиля
хорошо, спасибо за помощь)
« Последнее редактирование: 16 Декабря 2009, 01:02:01 от Asix »

Оффлайн InfStudent

  • Модератор
  • *****
  • Сообщений: 1356
  • Куба любовь моя))
    • Просмотр профиля
Re: Текстовый файл...
« Ответ #9 : 16 Декабря 2009, 01:19:28 »
Вот вроде код написал который записывает строки все вплоть до заданного номера
Прежде чем задавать вопрос в раздел по программированию повтори теорию и посмотри FAQ! Просьба не кидайте задания в ЛС и не надо мне писать: "посмотри мою задачу!!!" Я смотрю все задачи в разделе когда на форуме
Учтите что подобные ЛС будут оставлены без внимания!
УКАЗЫВАЙТЕ ЯЗЫК ПРОГРАММИРОВАНИЯ НА КОТОРОМ ДОЛЖНА БЫТЬ РЕШЕНА ЗАДАЧА
Вам в помощь:
∫ ¼ ½ ¾ ⅓ ⅔ ⅛ ⅜ ⅝ ⅞ ² ³ ± ~ ‰ ∞ √ ∑ ∆ ℮ ∩ ≡ ≤ ≥ ≈ ∩

Оффлайн InfStudent

  • Модератор
  • *****
  • Сообщений: 1356
  • Куба любовь моя))
    • Просмотр профиля
program TestF;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
 f:textfile;
 f1:textfile;
 buf:string;
 i,n,k:integer;
 kod:integer;
begin
writeln('Skolko strok xotite?');
readln(n);
    AssignFile(f,'TextF1');
    Rewrite(f);
    buf:='';

for i:=1 to n do
 begin

 k:=random(120);
 buf:=IntToStr(k);
 writeln(buf);
 writeln(f,buf);
 end;
 Close(f);
 AssignFile(f1,'TestF1');
 Rewrite(f1);
 reset(f);
 readln;
 for i:=1 to n-1 do
 begin
 if EoF(f) then
 begin
   break;
 end;
buf:='';
readln(f,buf);
writeln(buf);
writeln(f1,buf);

 end;
 Close(f);
 Close(f1);
 readln;
end.
Прежде чем задавать вопрос в раздел по программированию повтори теорию и посмотри FAQ! Просьба не кидайте задания в ЛС и не надо мне писать: "посмотри мою задачу!!!" Я смотрю все задачи в разделе когда на форуме
Учтите что подобные ЛС будут оставлены без внимания!
УКАЗЫВАЙТЕ ЯЗЫК ПРОГРАММИРОВАНИЯ НА КОТОРОМ ДОЛЖНА БЫТЬ РЕШЕНА ЗАДАЧА
Вам в помощь:
∫ ¼ ½ ¾ ⅓ ⅔ ⅛ ⅜ ⅝ ⅞ ² ³ ± ~ ‰ ∞ √ ∑ ∆ ℮ ∩ ≡ ≤ ≥ ≈ ∩

Оффлайн InfStudent

  • Модератор
  • *****
  • Сообщений: 1356
  • Куба любовь моя))
    • Просмотр профиля
Но вот на самом деле это несовсем верное решение)) Мне бы еще хотелось знать как формируется входной файл
Прежде чем задавать вопрос в раздел по программированию повтори теорию и посмотри FAQ! Просьба не кидайте задания в ЛС и не надо мне писать: "посмотри мою задачу!!!" Я смотрю все задачи в разделе когда на форуме
Учтите что подобные ЛС будут оставлены без внимания!
УКАЗЫВАЙТЕ ЯЗЫК ПРОГРАММИРОВАНИЯ НА КОТОРОМ ДОЛЖНА БЫТЬ РЕШЕНА ЗАДАЧА
Вам в помощь:
∫ ¼ ½ ¾ ⅓ ⅔ ⅛ ⅜ ⅝ ⅞ ² ³ ± ~ ‰ ∞ √ ∑ ∆ ℮ ∩ ≡ ≤ ≥ ≈ ∩

Оффлайн InfStudent

  • Модератор
  • *****
  • Сообщений: 1356
  • Куба любовь моя))
    • Просмотр профиля
Здесь я еще включил код генерирующий файл
Прежде чем задавать вопрос в раздел по программированию повтори теорию и посмотри FAQ! Просьба не кидайте задания в ЛС и не надо мне писать: "посмотри мою задачу!!!" Я смотрю все задачи в разделе когда на форуме
Учтите что подобные ЛС будут оставлены без внимания!
УКАЗЫВАЙТЕ ЯЗЫК ПРОГРАММИРОВАНИЯ НА КОТОРОМ ДОЛЖНА БЫТЬ РЕШЕНА ЗАДАЧА
Вам в помощь:
∫ ¼ ½ ¾ ⅓ ⅔ ⅛ ⅜ ⅝ ⅞ ² ³ ± ~ ‰ ∞ √ ∑ ∆ ℮ ∩ ≡ ≤ ≥ ≈ ∩

Оффлайн InfStudent

  • Модератор
  • *****
  • Сообщений: 1356
  • Куба любовь моя))
    • Просмотр профиля
program TestF;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
 f:textfile;//исходный файд
 f1:textfile;//целевой
 buf:string;//буфер куда сохраняем прочитанные данные
 i,n,k,l:integer;//i текущая итерация цмкла чтения\записи, n кол-во строк,
 //k здесь храним случайное число которое пишем в файл
 //l здесь храним номер удаляемой строки
 kod:integer;
begin
writeln('Skolko strok xotite?');
readln(n);
writeln('Kakuy stroku udalit?');
readln(l);

    AssignFile(f,'TextF1');
    Rewrite(f);
    buf:='';

for i:=1 to n do//заполняем текстовый файл случайными числами
 begin

 k:=random(120);
 buf:=IntToStr(k);//преобразуем число в строку
 writeln(buf);//выводим на экран на всякий случай
 writeln(f,buf);//пишем его в файл
 end;
 Close(f); //закрываем файл(иначе не сохраняться данные)
 AssignFile(f1,'TestF1');
 Rewrite(f1);//открываем новый(целевой)
 reset(f);//открываем старый на чтение
 for i:=1 to n do
 begin
 if EoF(f) then//дополнительная проверка на конец файла, но можно убрать
 begin
   break;
 end;
buf:=''; //отчищаем буфер чтобы не было наслоения данных
readln(f,buf);//читаем из старого файла
writeln(buf);//выводим что прочли
if i<>l then //сколько раз читали?Если число итераций соответсвует номеру строки не записываем ее
begin
writeln(f1,buf);
end;

 end;
 Close(f);//закрытие
 Close(f1);
 readln;
end.
Прежде чем задавать вопрос в раздел по программированию повтори теорию и посмотри FAQ! Просьба не кидайте задания в ЛС и не надо мне писать: "посмотри мою задачу!!!" Я смотрю все задачи в разделе когда на форуме
Учтите что подобные ЛС будут оставлены без внимания!
УКАЗЫВАЙТЕ ЯЗЫК ПРОГРАММИРОВАНИЯ НА КОТОРОМ ДОЛЖНА БЫТЬ РЕШЕНА ЗАДАЧА
Вам в помощь:
∫ ¼ ½ ¾ ⅓ ⅔ ⅛ ⅜ ⅝ ⅞ ² ³ ± ~ ‰ ∞ √ ∑ ∆ ℮ ∩ ≡ ≤ ≥ ≈ ∩

Оффлайн bifshtex

  • Пользователь
  • **
  • Сообщений: 70
    • Просмотр профиля
InfStudent спасибо тебе огромное))
у меня вот идея появилась..
что если сначала найти номера всех строк:
reset(f);
k:=0;
while not eof(f) do
 begin
 readln(f,s);
 inc(k);
 end;
close(f);
а потом записать в новый файл, сначала строки до этого k, потом нашу новую строку, и после нее строки идущие после k.
затем старый файл удалить, а новый переименовать на имя старого)