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

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

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

 
 Ответить  Открыть новую тему 
> нюанс со вставкой строки в текстовый файл, Срочно (стирается конец строки в самом файле)
сообщение
Сообщение #1


Гость






Задание:
ввести с клавиатуры строчку S1 и два числа №1 и №2. В тексте с позиции №1 вставить строку S1, с заменой символов (вместо старых символов), с позиции №2 вставить ту же строчку в обратной последовательности (абв - вба). Вывести измененную строку на экран до и после изменения.

У меня стирается конец строки из самого файла при вставке... Как увеличить строку, В которую вставляем?
ЗЫ вставка выделена...
program laba2;
uses crt;
var
f:text;
a,s:array[1..80] of string;
k,i,dl,e,dl1,i1,dl2,w,t:integer;
name,c,q,buf: string;
n1,n2:integer;
label 1;
function open_f(var f:text;name:string): boolean;
begin
assign(f,name);
{$I-};reset(f);{$I+};
if IOResult=0 then
begin
writeln('Файл открыт успешно');
open_f:=true;
end
else
begin
writeln('Ошибка открытия файла ');
writeln;
open_f:=false;
end;
end;
procedure vyvod(var f:text;name:string);
begin
assign(f,name);
{$I-};reset(f);{$I+};
writeln;
repeat
readln(f,c);
writeln©;
until EOF(f);
close(f);
writeln;
end;
begin
clrscr;
repeat
write('Введите название файла : ');
readln(name);
writeln;
until open_f(f,name) = true;

repeat
readln(f,s[k]);
dl:=dl+length(s[k]);
until EOF(f);
writeln('Введите числа №1 и №2, причём меньше ',dl,'.');
write('№1-');
readln(n1);

write('№2-');
readln(n2);

1: Write('Введите строку не ьольше ',((n2-n1)+1),'-');
Readln(q);
dl2:=length(q);
If dl2>((n2-n1)+1) then begin Writeln('Ошибка ввода '); goto 1 end;
clrscr;

writeln ('Файл');
vyvod (f,name);

reset (f);

Writeln('Ввод строки между позициями №1-',n1,'и №2-',n2,' и вставка перевёрнутой строки после позиции №2-',n2);
k:=1;
i1:=0;
w:=1;
e:=1;

For i:=dl2 downto 1 do
begin
buf[e]:=q[i];
inc(e);
end;
e:=1;

repeat
readln(f,s[k]);
dl1:=length(s[k]);
dl2:=length(q);
For i:=1 to dl1 do
begin
inc(i1);
If (i1>=n1) and (dl2>=w) then
begin
s[k,i]:=q[w];
inc(w);
end;
If (i1>n2) and (dl2>=e) then
Begin
for t:=dl1 downto i do
begin
s[k,t+1]:=s[k,t];
s[k,t]:=buf[e];
dl1:=dl1+1;

end;
inc(e);
end;
end;
Writeln(s[k]);
inc(k);
until EOF(f);
readkey;
close (f);
end.



Сообщение отредактировано: Мистер Ди -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Цитата
Как увеличить строку, В которую вставляем?
Пользоваться процедурой Insert, что автоматически изменит длину строки при добавлении... Иначе (при твоем методе вставки) длину строки надо менять вручную...
 К началу страницы 
+ Ответить 

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

 





- Текстовая версия 2.10.2020 2:21
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name