Склеить части строк с целой строкой
Есть текстовый файл со строками:
saa222+file1:12345
dss777+file2:1234
vcd555+file3:123
Нужно до символа + из строки извлечь все цифры и соединить их со строкой S, результат:
saa222+file1:12345222
dss777+file2:1234777
vcd555+file3:123555
Что я делаю, но вот в конце не соединяет, то есть где то есть ошибка, но где?
const
numb = ['0' .. '9'];
// работаем по строкам
while not Eof(fall) do
begin
// читаем строку
ReadLn(fall, s1);
// читаем строку
ReadLn(fall, S);
// Обрезаем строку S1 до символа +
s1 := Copy(s1, 1, Pos('+', s1) - 1);
// Удаляем все буквы из строки S1
for b := length(s1) downto 1 do
if not(s1[b] in numb) then
delete(s1, b, 1);
// Склеиваем строки S+S1
S:= S+S1;
writeln(f1, S);
end;
Ответы (1 шт):
Автор решения: MBo
→ Ссылка
Замените
// читаем строку
ReadLn(fall, s1);
// читаем строку
ReadLn(fall, S);
// Обрезаем строку S1 до символа +
s1 := Copy(s1, 1, Pos('+', s1) - 1);
на
// читаем строку
ReadLn(fall, S);
s1 := Copy(S, 1, Pos('+', S) - 1);
const
numb = ['0' .. '9'];
var
s, s1: string;
b: Integer;
begin
s := 'saa222+file1:12345';
s1 := Copy(s, 1, Pos('+', s) - 1);
// Удаляем все буквы из строки S1
for b := length(s1) downto 1 do
if not(s1[b] in numb) then
delete(s1, b, 1);
s:= s + s1;
Writeln(S);
>>saa222+file1:12345222