Тема: Робота з абзацами
Доброї ночі!
Допоможіть, будь ласка, написати програму . Я ніяк не можу зробити цю програму вже 3 тижні. Потрібно в тексті 2 абзаци поміняти місцями, абзаци розділені пустим рядочком.
Наперед вдячна!
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → Pascal/Delphi → Робота з абзацами
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися
Доброї ночі!
Допоможіть, будь ласка, написати програму . Я ніяк не можу зробити цю програму вже 3 тижні. Потрібно в тексті 2 абзаци поміняти місцями, абзаци розділені пустим рядочком.
Наперед вдячна!
А як текст задається? Відбувається читання з файлу чи константа?
Код:
[code=pas]program p_exchange;
var f:text; path:string; s, result1, result2, result:string; flag:boolean;
begin
    
    path := '/Users/leo/leo2.txt';
    assign(f, path);
    reset(f);
    
    flag := false;
    result := '';
    result1 := '';
    result2 := '';
    while not eof(f) do
    begin
        readln(f, s);
        
        if s = '' then
            flag := true
        else
            if flag then
                result2 := result2 + s + #13#10
            else
                result1 := result1 + s + #13#10;
    end;
    
    result := result2 + #13#10 + result1;
    
    write(result);
    
    close(f);
    
end.[/code]
Приклад файлу:
line1
line2
line4
line5дякую але не можна якось без цього : #13#10?просто ми не вчили такого
#13#10 - символи переходу на новий рядок
можна так як варіант:
program p_exchange;
var f:text; path:string; s:string; flag:boolean;
begin
    
    path := '/Users/leo/leo2.txt';
    assign(f, path);
    
    reset(f);
    flag := false;
    while not eof(f) do
    begin
        readln(f, s);
        
        if flag then
            writeln(s);
        
        if s = '' then
            flag := true;
            
    end;
    
    writeln();
    
    reset(f);
    flag := true;
    while not eof(f) and flag do
    begin
        readln(f, s);
        
        write(s);
        if s = '' then
            flag := false
        else
            writeln();
            
    end;
    
    
    write(result);
    
    close(f);
    
end.Якийсь ви не практичний Replace. У вас була така чудова нагода розжитися снікерсом чи пивом, а ви... 
@Torbins
Ви не розумієте - це вдалий маркетинговий хід 
 Спочатку він заманює жертву, а коли та розівчиться програмувати - він буде косити бабло.
А може гусари з дам грошей не беруть 
Насправді просто люблю допомагати людям.
Думаю дівчина програмістом вже не стане. І то не факт, що вона на програміста вчиться. 
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися