Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Опять торможу. Какая функция в Turbo Pascal отвечает...


Страницы:   1 2 3

ProgRAMmer Dimonych ©   (2006-11-17 20:40:00) 

за заполнение строковой переменной одинаковыми символами в заданном количестве.

P.S. Для тех, кому проще в сравнении... В Бейсике такой функцией является STRING$().


RASkov   (2006-11-18 01:54:00) [1]

> [42] Германн ©   (18.11.06 01:46)

Ну вот другое дело:)

> Дык ты ж опять для Дельфи, а не для TP.

Ну я же говорил, что

> Я с Turbo Pascal'ем не знаком но может будет совместимо.


Германн   (2006-11-18 01:46:00) [2]

Блин!!!

> RASkov   (18.11.06 01:34) [39]
>
> Так как примера небыло... Вот что у меня получилось, если
> что подправьте:)
...
Дык ты ж опять для Дельфи, а не для TP.
Для ТР:
function MS(Ch: Char; Count: Byte): String;
var S: String;
begin
 S[0]:=Count;
 FillChar(S[1], Count, Ch);
 MS:=S;
end;

Может можно и упростить. Никак не могу вспомнить про Result в ТР7 :-(
Вот теперь правильно.


Германн   (2006-11-18 01:44:00) [3]


> RASkov   (18.11.06 01:34) [39]
>
> Так как примера небыло... Вот что у меня получилось, если
> что подправьте:)
...
Дык ты ж опять для Дельфи, а не для TP.
Для ТР:
function MS(Ch: Char; Count: Byte): String;
var S: String;
begin
S[0]:=Count;
FillChar(S[1], Count, Ch);
Result:=S;
end;


Может можно и упростить. Никак не могу вспомнить про Result в ТР7 :-(


RASkov   (2006-11-18 01:38:00) [4]

> Move(Pointer(AText)^, P^, C);
>
> вообще какой-то ужастик ;)))

:))

Те, кто это придумал, я их считаю не далекими от своего дела. Поэтому и привел кусок ихого кода.
Это из RxLib.


RASkov   (2006-11-18 01:34:00) [5]

Так как примера небыло... Вот что у меня получилось, если что подправьте:)

function MS(const Ch: Char; const Count: Integer): String;
var S: array [0..255] of Char;
begin
 FillChar(S, Count, Ord(Ch));
 Result:=S;
 SetLength(Result, Count);
end;

procedure TForm1.btn1Click(Sender: TObject);
begin
 ShowMessage(MS('S', 10));
 ShowMessage(DupeString('QWERTY', 10));  //[29]
end;


Во втором случае можно не только 1 символом заполнять:)
Собственно мне это не надо, но раз уж нарвался...


MsGuns   (2006-11-18 01:10:00) [6]

FillChar procedure
Fills contiguous bytes with a specified value.

Unit

System

Category

character manipulation routines

Delphi syntax:

procedure FillChar(var X; Count: Integer; Value: Byte);

Description

In Delphi, FillChar fills Count contiguous bytes (referenced by X) with the value specified by Value (Value can be type Byte or Char).

Warning: This function does not perform any range checking.


MsGuns   (2006-11-18 01:08:00) [7]

>RASkov   (18.11.06 01:00) [35]
>Сергей, я просто хотел услышать мнение, обоснованное почему нужно делать как в [31].

Потому что НЕЛЬЗЯ делать сложно то, что НУЖНО делать просто.

В частности, зачет так безобразно работать со строками в паскале, языке, имеющем прекрасный встроенный строковый аппарат ?

Ну а вот это:

Move(Pointer(AText)^, P^, C);

вообще какой-то ужастик ;)))


fog   (2006-11-18 01:02:00) [8]

FillChar никого уже не устраивает?


RASkov   (2006-11-18 01:00:00) [9]

> [34] MsGuns ©   (18.11.06 00:56)

Это и всё? Я уж и всамом деле испугался.
Сергей, я просто хотел услышать мнение, обоснованное почему нужно делать как в [31].
Приведи пример с FillChar'ом.


MsGuns   (2006-11-18 00:56:00) [10]

Потому что СТРАШНО


RASkov   (2006-11-18 00:55:00) [11]

> [31] MsGuns ©   (18.11.06 00:43)

Т.е. сказать, что сказано в [31] это все могут, а обосновать....
Мне вот хотелось бы узнать чем плохо [29]. Хоть и не я это придумал...


RASkov   (2006-11-18 00:44:00) [12]

> [31] MsGuns ©   (18.11.06 00:43)

Почему?


MsGuns   (2006-11-18 00:43:00) [13]

>RASkov   (18.11.06 00:39) [29]

Спрячь это и никогда никому не показывай


RASkov   (2006-11-18 00:40:00) [14]

> Я с Turbo Pasca'ем
Pascal'ем


RASkov   (2006-11-18 00:39:00) [15]

> [6] ProgRAMmer Dimonych ©   (17.11.06 20:40)

Я с Turbo Pasca'ем не знаком но может будет совместимо.
Это из StrUtils

function DupeString(const AText: string; ACount: Integer): string;
var
 P: PChar;
 C: Integer;
begin
 C := Length(AText);
 SetLength(Result, C * ACount);
 P := Pointer(Result);
 if P = nil then Exit;
 while ACount > 0 do
 begin
   Move(Pointer(AText)^, P^, C);
   Inc(P, C);
   Dec(ACount);
 end;
end;


Германн   (2006-11-18 00:31:00) [16]


> Опять торможу. Какая функция в Turbo Pascal отвечает...
>
> ProgRAMmer Dimonych ©   (17.11.06 20:40)
>
> за заполнение строковой переменной одинаковыми символами
> в заданном количестве.

Двумя функциями можно. И без циклов.


MsGuns   (2006-11-18 00:31:00) [17]

>ProgRAMmer Dimonych ©   (17.11.06 20:40)  
>за заполнение строковой переменной одинаковыми символами в заданном количестве.

Есть  в WinAPI (что-то вроде FillChar)
А что, проблема написать одну строчку кода ?


Anatoly Podgoretsky   (2006-11-17 22:40:00) [18]

> ProgRAMmer Dimonych  (17.11.2006 22:35:25)  [25]

Если надеешься на меня, то по ОС и программам немного, ОС у меня старая, сервисы IIS/Apache.
Настройка и установка этого очень специфична, а так как это серверы, то информация об этом очень быстро забывается.
Тебе важно выбрать платформу (Windows/Unix/Linus), потом инструменты под нее, вот на эти вопросы тебе ответят, но это вопросы весьма религиозные.
После выбора можно уже конкретные вопросы по инсталяции и настройки.


ProgRAMmer Dimonych   (2006-11-17 22:35:00) [19]

То есть надежда есть?

Тогда ещё раз огромное спасибо за ответ на мои глупые вопросы.


Anatoly Podgoretsky   (2006-11-17 22:33:00) [20]

> ProgRAMmer Dimonych  (17.11.2006 22:31:23)  [23]

Я же не зря указал - зависит от ОС и от установленых программ. Если действительно хочешь получить ответ, то задавай в соответствующем форуме и хорошо формулируй.
Количесто программ-серверо просто невероятное, количество ОС поменее.


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо