0.00
0 читателей, 3 топика

Pascal - Сложение и умножение целых чисел любой размерности представленных в виде строк

Пришлось поработать с TurboPascal в очередной раз, под DOS. Была острая необходимость преобразовывать 8 байтовое шестнадцатиричное число в десятичное. Разумеется стандартными средствами, обычного DOS-ового Pascal-я такое решить в лоб нельзя. Ну нет в нем переменных способных уместить такой объём!

Для этих целей были написаны пара функций, топорно очень. Но работают. :)

Первая суммирует два десятичных числа представленных в виде строки, вторая умножает два десятичных числа представленных в виде строки.

1. Сложение (На входе 2 числа в виде строк, на выходе сумма этих чисел в виде строки)
function SumStr(in_1:string; in_2:string):string;
    var len_1, col_1,col_2,col_0,col_er,pont_1:integer;
        res_1, col_s:string;

  begin

  while (length(in_1)<>length(in_2)) do
    begin
      if length(in_1)>length(in_2) then
        in_2:='0'+in_2
          else
            in_1:='0'+in_1;
    end;

    res_1:='';

    pont_1:=0;
    for len_1:=length(in_1) downto 1 do
      begin
        val(in_1[len_1],col_1,col_er);
        val(in_2[len_1],col_2,col_er);
        col_0:=col_1+col_2+pont_1;
        pont_1:=col_0 div 10;
        col_0 := col_0 mod 10;
        str(col_0,col_s);
        res_1:=col_s+res_1;
      end;

      if pont_1>0 then
        begin
          str(pont_1,col_s);
          res_1:=col_s+res_1;
        end;

        SumStr:=res_1;

  end;


Читать дальше →

Маленькие заметки по программированию на Delphi

В этом документе буду собирать различные полезности которые встречаются в работе с этим языком программирования и IDE.

Заметка №1
Ширина и высота строки в пикселях.
var W,H: integer;

//Ширина
W := Canvas.TextWidth('Ширина строки');
ShowMessage('Ширина:'+IntToStr(W));

//Высота
H := Canvas.TextHeight('Высота строки');
ShowMessage('Ширина:'+IntToStr(H));


Заметка №2
Помещаем RGB цвет в TColor.
Color := RGB(R,G,B);
//Где R,G и B - Переменные типа Byte
//Интенсивность Красного ( R ), Зелёного ( G ) и Синего ( B )


Читать дальше →

Примеры процедур, для минимизации кода при работе с БД в Delphi.

Волею судеб вновь столкнулся с разработкой на Delphi, с тех пор когда занимался этим будучи студентом, прошло много времени и в Delphi особо ничего не изменилось, а вот у меня несколько сменились представления о разработке и о том как правильно должен выглядеть код.

Теперь о том, как я делал давным давно и как (к моему удивлению) многие программисты делают до сих пор.

Ох уж эти базы данных, чего может быть проще, кинул на форму DBGrid, Connection, Query или Table, DataSource, связал всё это хозяйство и работает — Красота!.. Только если этих таблиц много и выборки очень разнообразны (даже в случае когда мы всё вынесем на отдельную формочку) получится жуть в которой очень легко запутаться и это только на форме, в то что творится внутри кода и заглядывать страшно — бардак.

Да и в любом случае, надо вам скажем выполнить один единственный запрос в коде, и поехало собирание Query с кучей строчек кода.

Читать дальше →