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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.12.2015, 20:27   #1
Silentbeaverbob
Новичок
Джуниор
 
Регистрация: 13.12.2015
Сообщений: 6
По умолчанию Удаление строки

Написал код, попросили удалить строку; каким образом это можно осуществить?
Код:
 
Type
  Storage = Record
     stor_index : integer;
     goods_index: integer;
     goods_name: String[20];
     month_in:integer;
     doc_num:integer;
     doc_date:integer;
     quantity:integer;
     
  end;

var
  s : array [1..5] of Storage;
  count : integer;
  const
    ourstring = '1,09, Nooneknows, 111, 44, 5, 1943';


procedure generateFile;
var f:file of Storage;

 procedure newStorage(si: integer; gi:integer; gn: string; mi, dn, dd:integer; qt:integer);
 var h:Storage;
 begin
   h.stor_index  := si;
   h.goods_index := gi;
   h.quantity    := qt;
   h.goods_name  := gn;
   h.doc_num     := dn;
   h.doc_date    := dd;
   h.month_in    := mi;
   write(f, h);
 end;

begin
   assign(f, 'E:\file4.txt'); rewrite(f);
   newStorage( 1,02, 'Phone', 100, 25, 4, 1243);
   newStorage( 3,05, 'Laptop', 199, 23, 1, 994);
   newStorage( 4,01, 'Manufacturedjjj', 144, 2,3, 9999);
   newStorage( 8,06, 'Brandnewstaff', 124, 11, 6, 9991);
   newStorage( 1,09, 'Nooneknows', 111, 44, 5, 1943);
   close(f);
end;

procedure readData;
var h : Storage;
    f:file of storage;
begin
   count := 0;
   Assign(f, 'E:\file4.txt'); Reset(F);
   While not EOF(F) Do begin
      Read(F, h);
      inc(Count);
      if count <= 5 then begin
         S[count] := h;
      end;
   end;
   Close(F);
end;

procedure printList;
var i:integer;
begin
   for i:=1 to count do begin
      writeln(S[i].stor_index , S[i].goods_index, S[i].goods_name:20, S[i].month_in:6, S[i].doc_num:5, S[i].doc_date:5, S[i].month_in:5,S[i].quantity:5);
   end;
end;


procedure Sort(N:integer);
var t:Storage;
    changed, B : boolean;
    i:integer;
begin
   repeat
      changed := false;
      for i := 1 to count-1 do begin
         case N of
            1 : B := s[i].goods_name > s[i+1].goods_name;
            2 : B := s[i].month_in > s[i+1].month_in;
                     else   B := false;
         end;
         if B then begin
            changed := true;
            t := S[i];
            S[i] := S[i+1];
            S[i+1] := t;
         end;
      end;
   until not changed;
end;


begin
   generateFile;
   readData;
   writeln('unsorted list');
   printList;

   Sort(1);
   writeln('sorted by name');
   printList;

   Sort(2);
   writeln('sorted by month in');
   printList;

end;

Последний раз редактировалось Stilet; 15.12.2015 в 20:36.
Silentbeaverbob вне форума Ответить с цитированием
Старый 15.12.2015, 20:38   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Удалять строки из файла?
Нужно считать файл в динамический список, но без этой самой строки.
А потом список записать в файл.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.12.2015, 20:40   #3
Silentbeaverbob
Новичок
Джуниор
 
Регистрация: 13.12.2015
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Удалять строки из файла?
Нужно считать файл в динамический список, но без этой самой строки.
А потом список записать в файл.
таким образом?
Код:
var
    f1,f2: text;
    s: string;
   const
    ourstring = 'ДЬВ';         {искомая стpока}
   begin
    assign(f1,'c:\a.txt');
    assign(f2,'c:\b.txt');
    reset(f1); rewrite(f2);
    while not eof(f1) do
     begin
      readln(f1,s);
      if pos(ourstring,s)<>0 then continue; {пропустить строку, если найдено}
      writeln(f2,s);
     end;
    close(f1); close(f2);
   end.

Последний раз редактировалось Вадим Мошев; 15.12.2015 в 21:36.
Silentbeaverbob вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление строки Pilyla Общие вопросы Delphi 2 19.04.2013 07:51
Удаление из строки. asmars Общие вопросы C/C++ 8 23.04.2012 18:21
Удаление строки в C++. Alifee Помощь студентам 1 17.12.2011 02:52
Удаление элементов строки s2 из строки s1 Ueshua Общие вопросы C/C++ 4 20.12.2009 13:06
Удаление из строки program123 Помощь студентам 4 21.05.2009 12:52