Вверх ↑
Этот топик читают: Гость
Ответов: 1343
Рейтинг: 31
#1: 2015-03-28 13:25:12 ЛС | профиль | цитата
как попроще переделать этакую схемку для приравнения символов в строке к желаемому, путём добавки в конец пробелов(для ведения логов сервера, что бы отображалось ровно в столбиках)

code_35391.txt
карма: 2

0
файлы: 1code_35391.txt [1.9KB] [281]
Ответов: 16884
Рейтинг: 1239
#2: 2015-03-28 14:10:46 ЛС | профиль | цитата
code_35394.txtТочки применил для наглядности. Замении на пробелы.
Число "пробелов" должно быть равно "ширине столбика"
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
1
файлы: 1code_35394.txt [614B] [265]
Голосовали:Rysik
Ответов: 8926
Рейтинг: 823
#3: 2015-03-28 14:12:29 ЛС | профиль | цитата
Rysik, столько раз обсасывалось УРАВНИВАНИЕ длины строк, что и добавить нечего!
Tad, привет!
карма: 19

0
Ответов: 16884
Рейтинг: 1239
#4: 2015-03-28 14:16:56 ЛС | профиль | цитата
Привет.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 2059
Рейтинг: 132
#5: 2015-03-28 15:36:53 ЛС | профиль | цитата
Если я правильно понял вопрос, то примерно так:
Make(delphi)
ver(4.04 build 185)
Add(MainForm,12630844,217,84)
{
}
Add(InlineCode,7397974,490,133)
{
WorkPoints=#8:doString|0:|
EventPoints=#8:onString|0:|
DataPoints=#9:lenstring|5:strIN|0:|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|21:uses kol,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|25: lenstring: THI_Event;|21: strIN: THI_Event;|24: onString: THI_Event;|52: Procedure doString(var _Data:TData; Index:Word);|5: end;|0:|14:implementation|3:var|10:i:integer;|39:n:integer; // нужное колличество знаков|34:LengthStr:integer; // длина строки|11:str:string;|31:Procedure THiAsmClass.doString;|5:begin|33:n:= ReadInteger(_Data,lenstring);|30:str:= Readstring(_Data,strIN);|23:LengthStr:=Length(str);|17:SetLength(str,n);|17://n - Length(str)|53:For i := (LengthStr + 1) to (n) do str[i]:=Char();|27:_hi_OnEvent(onString,str );|4:end;|0:|4:end.|
link(onString,7519482:doText,[])
link(lenstring,14491252:Text,[(496,107)(489,107)])
link(strIN,6082914:Text,[(503,107)(552,107)])
}
Add(Button,13005861,322,56)
{
Left=20
Top=125
link(onClick,7397974:doString,[(422,62)(422,139)])
}
Add(Edit,14491252,483,49)
{
Left=40
Top=15
Text="20"
DataType=1
}
Add(Edit,6082914,546,49)
{
Left=25
Top=55
Width=345
Text="qwerty"
}
Add(Edit,7519482,567,133)
{
Left=25
Top=80
Width=345
Text=""
}


По скрипту не составит труда перевести в квадратики, но нужно ли?
Поправил. Рассеянность одолела.
карма: 6

0
файлы: 1code_35395.txt [1.4KB] [393]
Ответов: 1343
Рейтинг: 31
#6: 2015-03-28 15:52:05 ЛС | профиль | цитата
Tad, flint2, спасибо
карма: 2

0
Ответов: 2059
Рейтинг: 132
#7: 2015-03-28 15:59:03 ЛС | профиль | цитата
Я поправил.
Рассеянность одолела.
карма: 6

0
Разработчик
Ответов: 4698
Рейтинг: 426
#8: 2015-03-28 16:45:43 ЛС | профиль | цитата
Tad, стареешь, циферки можно и попроще
code_35396.txt
карма: 10
0
файлы: 1code_35396.txt [600B] [331]
Ответов: 16884
Рейтинг: 1239
#9: 2015-03-28 16:56:56 ЛС | профиль | цитата
Assasin,
Rysik писал(а):
приравнения символов в строке к желаемому, путём добавки в конец пробелов(для ведения логов сервера, что бы отображалось ровно в столбиках)
Откуда я мог знать, что "символов в строке" это только цифры ? Если только цифры, то твой вариант подойдёт, если любой текст, то нет.
Так что, единственное в чем ты прав, это
Assasin писал(а):
Tad, стареешь

Пример четко продуманного алгоритма: https://www.youtube.com/watch?v=b6Do0bm2rnU
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26151
Рейтинг: 2127
#10: 2015-03-28 18:31:33 ЛС | профиль | цитата
Tad писал(а):
Блин! Как четко продуман алгоритм !

Мда... Уж. Коротко и ясно
карма: 22

0
Ответов: 1343
Рейтинг: 31
#11: 2015-03-29 08:46:34 ЛС | профиль | цитата
Tad писал(а):
Откуда я мог знать, что "символов в строке" это только цифры ?


так символы это и подразумевается как символы, причём тут цифорки то
Tad, твой пример то что надо
карма: 2

0
Ответов: 2059
Рейтинг: 132
#12: 2015-03-29 10:28:18 ЛС | профиль | цитата
Хочется понять, что я не так сделал?
карма: 6

0
Разработчик
Ответов: 26151
Рейтинг: 2127
#13: 2015-03-29 11:06:42 ЛС | профиль | цитата
flint2 писал(а):
Хочется понять, что я не так сделал?

Решение-то правильное, даже можно сказать -- классическое. Но, увы, не оптимальное. Для добавления используется строка, как массив символов и цикл для добавления. Tad же применил наикратчайшее решение -- суммирование строк и обрезку по нужной длине, те всего две итерации твоего цикла, независимо от количества итераций. К недостаткам такого метода можно отнести только занимаемую область памяти под добавляемую строку нужной длины
карма: 22

0
Ответов: 2059
Рейтинг: 132
#14: 2015-03-29 12:17:04 ЛС | профиль | цитата
Понял.
Сначала была мысль " S1:=S1 + S2 ", но получалось громоздко.
Ведь соединение строк - тоже цикл для добавления.
Спасибо.
карма: 6

0
Ответов: 16884
Рейтинг: 1239
#15: 2015-03-29 14:08:37 ЛС | профиль | цитата
flint2, если слить воду , то
code_35400.txt
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1code_35400.txt [1.1KB] [265]
Сообщение
...
Прикрепленные файлы
(файлы не залиты)