![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
KRUTOY |
![]()
Сообщение
#1
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 68 Пол: Мужской Репутация: ![]() ![]() ![]() |
:-[ :'(
ДРУЗЬЯ, помогите с файлами?? сроки жмут!! :-/ как скопировать все строки из данного файла в другой файл,начиная с заданного символа??? заранее благодарен!! -------------------- Главное - чтобы воля была, к победе...
|
oleg309 |
![]()
Сообщение
#2
|
![]() профи ![]() ![]() Группа: Пользователи Сообщений: 109 Пол: Мужской Репутация: ![]() ![]() ![]() |
Да не зачто! ;D
-------------------- Тело, находящееся в состоянии покоя, стремится смотреть телевизор.
|
Shadow |
![]()
Сообщение
#3
|
![]() Lonely_Raven ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 640 Пол: Мужской Репутация: ![]() ![]() ![]() |
прочитать с заданного символа информацию в память , буффер, массив
а потом записать его в файл -=-=-= позиционирование в файле с помощью оператор Seek вроде если не ошиб =-=== или можно на ASM что проще -------------------- Программа делает то что вы ей приказали а не то что бы ВАМ хотелось бы.
МЕРФИ --------------------- RTFM - Read the fucking manual --------------------- http://www.livejournal.com/users/lonley_raven/ |
trminator |
![]()
Сообщение
#4
|
Четыре квадратика ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 579 Пол: Мужской Репутация: ![]() ![]() ![]() |
А в чем, собственно, проблема? Или хочется готового решения? Программа получается строк 10, не больше. Выкладывай, что у тебя есть.
-------------------- Закон добровольного труда Зимерги:
Люди всегда согласны сделать работу, когда необходимость в этом уже отпала |
SKVOZNJAK |
![]()
Сообщение
#5
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 930 Пол: Мужской Репутация: ![]() ![]() ![]() |
На 38 строк тоже сделать можно :)
|
KRUTOY |
![]()
Сообщение
#6
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 68 Пол: Мужской Репутация: ![]() ![]() ![]() |
Лучше бы, конечно, решение, потому как мои подборки, кажись, нерациональны, да и разобрать их трудно !!:
Код 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. -------------------- Главное - чтобы воля была, к победе...
|
SKVOZNJAK |
![]()
Сообщение
#7
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 930 Пол: Мужской Репутация: ![]() ![]() ![]() |
Зачем умножать сущности и приплетать к простой задаче директивы компилятора? Моя версия немного покороче. Можешь сдавать не проверяя
![]() Код 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 - |
KRUTOY |
![]()
Сообщение
#8
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 68 Пол: Мужской Репутация: ![]() ![]() ![]() |
SKVOZNJAK
так я тоже думал... так вот дело то в том,что файлы должны быть текстовыми?? -------------------- Главное - чтобы воля была, к победе...
|
trminator |
![]()
Сообщение
#9
|
Четыре квадратика ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 579 Пол: Мужской Репутация: ![]() ![]() ![]() |
Код 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. Может, подойдет? Только, похоже, тебе что-то немного другое нужно. Но это - то, про что ты спрашиваешь в этой теме -------------------- Закон добровольного труда Зимерги:
Люди всегда согласны сделать работу, когда необходимость в этом уже отпала |
SKVOZNJAK |
![]()
Сообщение
#10
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 930 Пол: Мужской Репутация: ![]() ![]() ![]() |
Это поставлено в условие? Если да, то придётся кувыркаться, не отвертишься. Никогда не пользовался типизованными файлами - нетипизованные файлы позволяют выполнять все их функции + много других, только надо поковыряться в них ручками...
|
Nemo |
![]()
Сообщение
#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: Мог ощибиться - под рукой нет Паскаля. |
KRUTOY |
![]()
Сообщение
#12
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 68 Пол: Мужской Репутация: ![]() ![]() ![]() |
Проканало !!!!!!!!!
Спасибо вам за ответы !!! Есть еще на свете добрые люди !! Добавлено (12.12.03 21:24): Nemo Спасибо, дружище, я уже догадался !! ![]() -------------------- Главное - чтобы воля была, к победе...
|
![]() ![]() |
![]() |
Текстовая версия | 18.04.2025 18:13 |