Форум: "Начинающим";
Текущий архив: 2006.11.19;
Скачать: [xml.tar.bz2];
ВнизФункции Delphi. Найти похожие ветки
← →
Shopot © (2006-11-04 09:07) [0]Здравсвуйте!!! Есть ли в Delphi такие функции работы со строками как в
C++ - sscanf, sprintf?
← →
Virgo_Style © (2006-11-04 11:35) [1]Таких - нету.
← →
DrPass © (2006-11-04 11:35) [2]sprintf - это Format. Аналога sscanf нет, но мне еще не встречалось случая, когда ее нельзя было бы заменить read/readln
← →
Kolan © (2006-11-04 11:37) [3]> [2] DrPass © (04.11.06 11:35)
> sprintf - это Format. Аналога sscanf нет, но мне еще не
> встречалось случая, когда ее нельзя было бы заменить read/readln
Незнаю что естьsprintf
, ноprintf
возврашает кол-во выведенных символов, аReadLn
нет.. AFAIR
← →
Anatoly Podgoretsky © (2006-11-04 11:42) [4]
> Kolan © (04.11.06 11:37) [3]
Видимо ты не умеешь работать со строками
← →
Kolan © (2006-11-04 11:46) [5]> Видимо ты не умеешь работать со строками
А тут причем?procedure Readln(...
процедура это.
А printf - функция и возвращаетint
← →
Percent (2006-11-04 11:49) [6]Kolan ©
но printf возврашает кол-во выведенных символов, а ReadLn нет
procedure Readln(...
процедура это.
А printf - функция и возвращает int
О-о-о... как все запущено...
Вопрос на засыпку: что делает readln, а что делает printf?
← →
Anatoly Podgoretsky © (2006-11-04 11:50) [7]А тебе зачем?
В СИ нет процедур, там только функции, но все равно тебе зачем это, может алгоритм переписать, ну не нравится это, так используй формат, из него узнаешь до передачи, сколько там символов. Хотя ума не приложу куда это использовать, случайно не попугаев собираешься мерить.
А что в СИ все функции возрващают количество символов, если не все то твои претензии не обоснованы.
Кстати ты можешь переписать Write/WriteLN что бы такая информация была доступна.
← →
Anatoly Podgoretsky © (2006-11-04 11:51) [8]
> Вопрос на засыпку: что делает readln, а что делает printf?
Да ладно, парень глупость сморозил
← →
Kolan © (2006-11-04 11:59) [9]> Вопрос на засыпку: что делает readln, а что делает printf?
А, ну да :) Перепутал.. про WriteLn говорил...правда тогда к [2] претензии необоснванные :)
← →
TUser © (2006-11-04 12:01) [10]Format
FormatStr
TRegEXpr
← →
Shopot © (2006-11-04 12:24) [11]
> Anatoly Podgoretsky © (04.11.06 11:42) [4]
> Видимо ты не умеешь работать со строками
Какие умные бывают на свете. Все привыкли делать своими ручками.
Есть старое программное обеспечение под ДОС. Написанно на С. Так там инфа сохраняется в файлы корявого формата. Типа первая строка это
название 12 символов, имя оператора 10 символов, дата 10 символов.
Вторая строка курс валют, используемая по умолчанию валюта...
3 - я строка...
4 - я строка данные - 10 колонок где 1 - я и 10 - я колонка 8 символов, остальные по 9 символов.
Когда считываешь Readln"ом потом преобразуешь - неудобно.
Зачем изобретать велик. Ведь в C++ он есть.
← →
DrPass © (2006-11-04 12:28) [12]
> Когда считываешь Readln"ом потом преобразуешь - неудобно.
>
> Зачем изобретать велик. Ведь в C++ он есть.
Все равно непонятно. А что тебе мешает считать readln"ом без всяких преобразований? Ты ж пойми - он не только строки умеет считывать, а все подряд и в любом сочетании. Точно так же, как и scanf
А кроме того, если длина полей в файле известна, там вообще можно было бы обойтись без readln. А сделать соответствующую структуру, открыть файл как нетипизированный и в один прием залить из файла данные
← →
Percent (2006-11-04 12:58) [13]Shopot ©
А что, BlockRead() уже отменили?
← →
Anatoly Podgoretsky © (2006-11-04 18:13) [14]
> Какие умные бывают на свете. Все привыкли делать своими
> ручками.
Тебе привели TRegEXpr, тебе привели другие функции, а ты все неймешь, никак понять, что ты пока еще не умеешь программировать.
Твоя задачка для начальных курсов непрограммирующих пользователей
← →
palva © (2006-11-04 20:22) [15]Если по сабжу, то есть функция wvsprintf
{$APPTYPE CONSOLE}
uses Windows;
var
s: String;
buf: array [0..99] of Char;
p: array[0..2] of Integer;
begin
p[0] := 355;
p[1] := Ord("Q");
p[2] := $fed;
wvsprintf(@buf[0], "%05d %c %04X", @p);
SetLength(s, lstrlen(buf));
lstrcpy(PChar(s), buf);
WriteLn(s); // 00355 Q 0FED
end.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.11.19;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.045 c