Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 23.12.2013, 20:16   #1 (permalink)
Евгений
Member
 
Аватар для Евгений
 
Регистрация: 31.03.2010
Адрес: Тульская область
Сообщений: 1,309
Сказал(а) спасибо: 11
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 13090
По умолчанию Помогите решить

Начал учить Паскаль (самостоятельно, по книжечке). Познания, пока, не большие. Уперся в задачку. Скорее всего всё очень просто, но я чего-то не соображу.
Дан текстовый файл. Текст-столбик цифр. Нужно записать цифры в другой файл по порядку по 3 числа в строке.
У меня получается, что в строке прописывается 3 раза одна и та же цифра.
Евгений вне форума   Ответить с цитированием

Старый 23.12.2013, 20:16
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Ранее созданных обсуждения помогут раскрыть глаза на решение проблемы

Помогите решить
Помогите решить
Помогите решить
Помогите решить
Помогите решить С++

Старый 24.12.2013, 15:11   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Евгений Посмотреть сообщение
Начал учить Паскаль (самостоятельно, по книжечке). Познания, пока, не большие. Уперся в задачку. Скорее всего всё очень просто, но я чего-то не соображу.
Дан текстовый файл. Текст-столбик цифр. Нужно записать цифры в другой файл по порядку по 3 числа в строке.
У меня получается, что в строке прописывается 3 раза одна и та же цифра.
Ой, Женя, извини - как-то пропустил сообщение.
Я, конечно, могу написать программку, но будет лучше, если ты выложишь свой вариант. Посмотрим, разберемся, исправим ошибки.
Vladimir_S вне форума   Ответить с цитированием
Старый 24.12.2013, 19:30   #3 (permalink)
Евгений
Member
 
Аватар для Евгений
 
Регистрация: 31.03.2010
Адрес: Тульская область
Сообщений: 1,309
Сказал(а) спасибо: 11
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 13090
По умолчанию

const
A= 'A.txt';
B= 'B.txt';
var InFile, OutFile: text;
N: integer;
begin
Assign( InFile, A); Reset( InFile);
Assign( OutFile, B); Rewrite( OutFile);
while not Eof(InFile) do begin
Readln(InFile, N);
Writeln(OutFile,N:6,N:6,N:6);
end;
Close( InFile); Close( OutFile);
end.

Я понимаю, что она делает. И даже понимаю почему. Я не пойму как её заставить записывать числа по порядку в одну строку.
Евгений вне форума   Ответить с цитированием
Старый 24.12.2013, 19:48   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Евгений Посмотреть сообщение
Я не пойму как её заставить записывать числа по порядку в одну строку.
Да легко. Например, так:
Код:
const
 A= 'A.txt';
 B= 'B.txt';
var
 InFile, OutFile: text;
 N,k: integer;
begin
 Assign(InFile, A);
 Reset(InFile);
 Assign(OutFile, B);
 Rewrite(OutFile);
 k:=0;
 while not Eof(InFile) do
  begin
   Readln(InFile, N);
   Inc(k);
   if k=3 then
    begin
     Writeln(OutFile,N:6);
     k:=0;
    end
   else
    Write(OutFile,N:6);
  end;
 Close(InFile);
 Close(OutFile);
end.
Миниатюры
nc01.jpg   nc02.jpg  
Vladimir_S вне форума   Ответить с цитированием
Старый 24.12.2013, 20:12   #5 (permalink)
Евгений
Member
 
Аватар для Евгений
 
Регистрация: 31.03.2010
Адрес: Тульская область
Сообщений: 1,309
Сказал(а) спасибо: 11
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 13090
По умолчанию

Спасибо.
Были у меня подозрения о Write, но не додумался.
А Writeln , получается, перекидывает на новую строку.
Ешё раз спасибо. Хороший урок.
Евгений вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 24.12.2013, 20:34   #6 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Евгений Посмотреть сообщение
А Writeln , получается, перекидывает на новую строку.
Конечно. Как и Readln при чтении. И вообще "ln" это сокращенное "line" - линия, строка.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 21:31.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.