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

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

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

 
 Ответить  Открыть новую тему 
> Как переписать все строки, начиная, с определенного символа в другой файл ?
сообщение
Сообщение #1


Пионер
**

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

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


:-[ :'(
ДРУЗЬЯ, помогите с файлами?? сроки жмут!! :-/
как скопировать все строки из данного файла в другой файл,начиная с заданного символа???
заранее благодарен!!


--------------------
Главное - чтобы воля была, к победе...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


профи
**

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

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


Да не зачто! ;D


--------------------
Тело, находящееся в состоянии покоя, стремится смотреть телевизор.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Lonely_Raven
****

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

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


прочитать с заданного символа информацию в память , буффер, массив
а потом записать его в файл
-=-=-=
позиционирование в файле с помощью оператор Seek вроде если не ошиб
=-===
или можно на ASM что проще


--------------------
Программа делает то что вы ей приказали а не то что бы ВАМ хотелось бы.
МЕРФИ
---------------------
RTFM - Read the fucking manual
---------------------
http://www.livejournal.com/users/lonley_raven/
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Четыре квадратика
****

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

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


А в чем, собственно, проблема? Или хочется готового решения? Программа получается строк 10, не больше. Выкладывай, что у тебя есть.


--------------------
Закон добровольного труда Зимерги:
Люди всегда согласны сделать работу, когда необходимость в этом уже отпала
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Профи
****

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

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


На 38 строк тоже сделать можно  :)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Пионер
**

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

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


Лучше бы, конечно, решение, потому как мои подборки, кажись, нерациональны, да и разобрать их трудно !!:
Код
Program proga5;
uses crt;
var
F,G:text;
a,b,c:array [1..20] of string;
i,j,h,k,z:integer;
S:char;
begin
 clrscr;
 writeln('Введите файл: ');
 i:=1;
 while not (a[i-1]='nomore') and (i<=10) do
 begin
 readln(a[i]);
 inc(i)
 end;
 assign(F,'F');
 {$I-}
 rewrite(F);
 {$I+}
 if IOResult<>0 then
 writeln('” файл не существует: ');
    i:=1;
  while not (a[i]='nomore') and (i<=10) do
  begin
   writeln(F,a[i]);
   inc(i)
  end;
   close(F);
   writeln('введиет символ: ');
   readln(S);
   reset(F);
   i:=1;
   k:=1;
  while not EOF(F) and  (i<=10) do
    for i:=1 to (h-1) do
        begin
        for j:=1 to length(c[i]) do
        read(F,c[i][j]);
        if (c[i][j]=S) then
        begin
        b[k]:=copy(c[i],j,(length(c[i])-j));
        for k:=(k+1) to (h-1) do
        b[k]:=c[i+1];
        end;
        end;
close(F);
assign(G,'G');
rewrite(G);
k:=1;
while (k<=10) and (k<>(h-1)) do
begin
writeln(G,b[k]);
inc(k)
end;
close(G);
{clrscr;
reset(G);
{end;}
readkey
end.


--------------------
Главное - чтобы воля была, к победе...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Профи
****

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

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


Зачем умножать сущности и приплетать к простой задаче директивы компилятора? Моя версия немного покороче. Можешь сдавать не проверяя smile.gif

Код
var Q2,W2: LONGINT;
     Q7,W7: FILE;
     QSTR:STRING[12];
     QQ3: ARRAY[1..10000] OF BYTE;
     Q8: WORD;
     LABEL 1,100;
BEGIN
WRITELN('ВВЕДИТЕ ИМЯ ФАЙЛА-ИСХОДНИКА');
READ(QSTR);
WRITELN('ВВЕДИТЕ НОМЕР СИМВОЛА, НАЧИНАЯ С КОТОРОГО БУДЕТ КОПИРОВАТЬСЯ ФАЙЛ'); READ(Q2);
ASSIGN(Q7,QSTR);
ASSIGN(W7,'!!!_!');
RESET(Q7,1);
REWRITE(W7,1);
writeln('ДЛИНА ЧИТАЕМОГО ФАЙЛА ',filesize(q7));

W2:=FILESIZE(Q7)-Q2+1; {КОЛИЧЕСТВО КОПИРУЕМЫХ БАЙТ}
IF W2<0 THEN WRITELN('ХРЕНОВЫЙ ПАРАМЕТР !!!!');
DEC(Q2);
SEEK(Q7,Q2);
1: Q8:=10000;
IF W2<1 THEN GOTO 100;

IF W2<10000 THEN BEGIN
                               Q8:=W2;
                               W2:=0;
           END;
IF W2>=Q8 THEN W2:=W2-10000;
{WRITE('  AA'); }
BLOCKREAD (Q7,QQ3,Q8);
BLOCKWRITE(W7,QQ3,Q8);
GOTO 1;

100: {ВЫХОД}
WRITELN('');
WRITELN('ДЛИНА СОЗДАННОГО ФАЙЛА ',filesize(W7)); CLOSE(Q7);
CLOSE(W7);
WRITELN(' ГОТОВО');
END.


Сообщение отредактировано: volvo -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Пионер
**

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

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


SKVOZNJAK
так я тоже думал...
так вот дело то в том,что файлы должны быть текстовыми??


--------------------
Главное - чтобы воля была, к победе...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Четыре квадратика
****

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

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


Код

var in_f, out_f : text;
   c, ToFind : char;
begin
 assign(in_f, 'c:tempFile2.txt'); reset(in_f);
 assign(out_f,'c:tempFile2.out'); rewrite(out_f);
 c:=#0; write('Ведите символ > '); readLn(ToFind);

 while (c <> ToFind) and (not eof(in_f))  do read(in_f, c); {Пропускаю ненужные символы}
 while not eof(in_f) do
 begin read(in_f,c); write(out_f, c) end;

 close(in_f); close(out_f)
end.

Может, подойдет? Только, похоже, тебе что-то немного другое нужно. Но это - то, про что ты спрашиваешь в этой теме


--------------------
Закон добровольного труда Зимерги:
Люди всегда согласны сделать работу, когда необходимость в этом уже отпала
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Профи
****

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

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


Это поставлено в условие? Если да, то придётся кувыркаться, не отвертишься. Никогда не пользовался типизованными файлами - нетипизованные файлы позволяют выполнять все их функции + много других, только надо поковыряться в них ручками...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Гость






Код
Uses
      CRT, Dos;
const
      FName1 = 'OutPut.txt';
      FName2 = 'Input.txt';
var
       F1, F2  : file;
       buf      : pointer;
       count  : longint;
       num    : longint;
begin
       WriteLn('Введите номер символа:');
       ReadLn(num);
       Assign(F1, FName);
       Assign(F2, FName);
       Reset(F1, 1);
       Reset(F2, 1);
       Seek(F1, num-1);
       count:=FileSize(F1)-Num+1;
       GetMem(buf, count);
       BlockRead(F1, buf^, count);
       BlockWrite(F2, buf^, count);
       FreeMem(buf, count);  
       Close(F1);
       Close(F2);
end.


PS:
Мог ощибиться - под рукой нет Паскаля.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Пионер
**

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

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


Проканало !!!!!!!!!
Спасибо вам за ответы !!! Есть еще на свете добрые люди !!

Добавлено (12.12.03 21:24):

Nemo
Спасибо, дружище, я уже догадался !! smile.gif


--------------------
Главное - чтобы воля была, к победе...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 




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