![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Опять торможу. Какая функция в Turbo Pascal отвечает...
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]
Я же не зря указал - зависит от ОС и от установленых программ. Если действительно хочешь получить ответ, то задавай в соответствующем форуме и хорошо формулируй.
Количесто программ-серверо просто невероятное, количество ОС поменее.