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

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

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

> Как переписать все строки, начиная, с определенного символа в другой файл ?
KRUTOY
сообщение 12.12.2003 15:06
Сообщение #1


Пионер
**

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

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


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


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


профи
**

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

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


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


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


Lonely_Raven
****

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

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


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


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


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

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

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


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


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


Профи
****

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

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


На 38 строк тоже сделать можно  :)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
KRUTOY
сообщение 12.12.2003 19:03
Сообщение #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 
 К началу страницы 
+ Ответить 
SKVOZNJAK
сообщение 12.12.2003 19:35
Сообщение #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 - 17.12.2004 18:19
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
KRUTOY
сообщение 12.12.2003 19:55
Сообщение #8


Пионер
**

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

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


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


--------------------
Главное - чтобы воля была, к победе...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
trminator
сообщение 12.12.2003 20:57
Сообщение #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 
 К началу страницы 
+ Ответить 
SKVOZNJAK
сообщение 12.12.2003 21:02
Сообщение #10


Профи
****

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

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


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


Гость






Код
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:
Мог ощибиться - под рукой нет Паскаля.
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 11)
KRUTOY
сообщение 12.12.2003 22:20
Сообщение #12


Пионер
**

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

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


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

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

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


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

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

 



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