Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2011.10.16;
Скачать: [xml.tar.bz2];

Вниз

Консоль   Найти похожие ветки 

 
Lithium   (2011-06-25 19:55) [0]

Здравствуйте!

Подскажите пожалуйста, как в консольном приложении вывести ( выводить ) статус процесса в одной строке?

Например: WriteLn(" Status : "+IntToStr(100 * Y div 1000)+"%");

В гугле ничего не удалось найти...
Заранее благодарен за ваши ответы!


 
Inovet ©   (2011-06-25 20:42) [1]

Write?


 
MBo ©   (2011-06-25 21:08) [2]

Не рыба, но удочка - найти раздел Console Functions в хелпе Windows SDK или в онлайновом MSDN, и выбрать оттуда пару нужных функций.

Если задач с консолью будет много, можно найти модуль, эмулирующий функции турбопаскального модуля CRT.


 
RWolf ©   (2011-06-27 10:00) [3]


> Подскажите пожалуйста, как в консольном приложении вывести
> ( выводить ) статус процесса в одной строке?

элементарно: write(#13"blablabla");


 
Lithium   (2011-06-29 01:46) [4]


> элементарно: write(#13"blablabla");


Спасибо! :)


 
Германн ©   (2011-06-29 02:15) [5]


> RWolf ©   (27.06.11 10:00) [3]
>
>
> > Подскажите пожалуйста, как в консольном приложении вывести
> > ( выводить ) статус процесса в одной строке?
>
> элементарно: write(#13"blablabla");
>

Я бы не смог сообразить и придумать такое простое решение. Как-то уже отвык, что CarriageReturn без LineFeed всё ещё живёт и даже как-то работает!


 
Anatoly Podgoretsky ©   (2011-06-29 07:25) [6]

А ты попробуй еще и LF отдельно и удивись.


 
rouf   (2011-06-29 10:53) [7]

А как выводить в конкретной строке?


 
Юрий Зотов ©   (2011-06-29 10:59) [8]

Чего-то я не понимаю, наверное, но зачем здесь вообще #13? Ровно то же самое выдает и просто write("blablabla"), без всяких извращений.

Да и вообще непонятно, в чем проблема? Чем плохо изначальное авторское
Write("Status : " + IntToStr(74) + "%");
или
WriteLn(Format("Status : %d%%", [74]));
или самое простое и самое правильное:
Write("Status : ", 74, "%");


 
Юрий Зотов ©   (2011-06-29 11:00) [9]

> А как выводить в конкретной строке?
См. [2].


 
QAZ   (2011-06-29 11:09) [10]


> Чего-то я не понимаю, наверное, но зачем здесь вообще #13?
>  Ровно то же самое выдает и просто write("blablabla"), без
> всяких извращений.

а если несколько раз подряд вызвать write("blablabla") что будет?


 
Юрий Зотов ©   (2011-06-29 11:13) [11]

> rouf   (29.06.11 10:53) [7]

Упрощаю задачу. Детали см. в справке.

uses
 Windows, SysUtils;

var
 H: THandle;
 Coord: TCoord;
 S: string;
 N: Cardinal;
begin
 S := Format("Status : %d%%", [74]);
 H := GetStdHandle(STD_OUTPUT_HANDLE);
 Coord.X := 30;
 Coord.Y := 12;
 SetConsoleCursorPosition(H, Coord);
 WriteConsole(H, PChar(S), Length(S), N, nil);
 readLn;
end.


 
Юрий Зотов ©   (2011-06-29 11:17) [12]


> QAZ   (29.06.11 11:09) [10]
> а если несколько раз подряд вызвать write("blablabla") что будет?

То, что и хотелось автору - все напечатается в одной строке.

А если нужно в разных, то опять же - зачем извращаться? Автор сам в своем вопросе указал WriteLn.

Какие проблемы-то? Нет их.


 
QAZ   (2011-06-29 11:29) [13]

write("blablabla");
write("blablabla");
write("blablabla");
=blablablablablablablablabla

write(#13"blablabla");
write(#13"blablabla");
write(#13"blablabla");
=blablabla


 
Inovet ©   (2011-06-29 11:39) [14]

> [6] Anatoly Podgoretsky ©   (29.06.11 07:25)
> А ты попробуй еще и LF отдельно и удивись.

И FF (12). Ну и BL (7).


 
Юрий Зотов ©   (2011-06-29 11:41) [15]


> QAZ   (29.06.11 11:29) [13]

А, вот оно что.
:o)


 
Anatoly Podgoretsky ©   (2011-06-29 15:21) [16]

Да автор не точно поставил вопрос. Эго видимо интересовал многократный вывод в одной строке с начала, на это намекает слово Статус



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2011.10.16;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.003 c
2-1309017333
Lithium
2011-06-25 19:55
2011.10.16
Консоль


6-1243060061
apic
2009-05-23 10:27
2011.10.16
настройка сети


2-1308977278
Kolobok
2011-06-25 08:47
2011.10.16
Разварот узла.


2-1307957801
Jamix
2011-06-13 13:36
2011.10.16
KDTele Tools


15-1308555247
DiamondShark
2011-06-20 11:34
2011.10.16
А вы в компьютерах разбираетесь?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский