Найден 21 результат

avmaksimov
27.02.2023 21:54:33
Форум: Помощь за вознаграждение
Тема: Доработки Double Commander (DoubleCmd) за плату
Ответы: 6
Просмотры: 69058

Re: Доработки Double Commander (DoubleCmd) за плату

DoubleCmd чуть ли не единственный адекватный файловый менеджер под Linux, но у него есть ряд багов и просто неудобств.

Я ищу того, кто сможет их исправить за деньги. Писал Alex2000, но на письма он отвечает не чаще одного раза в неделю.

Функции такого плана:

Quick view для папок бесполезен и ...
avmaksimov
09.02.2023 10:14:16
Форум: Free Pascal Compiler
Тема: Конвертация Int64 с разделителем групп разрядов: неужели?!)
Ответы: 50
Просмотры: 40145

Re: Конвертация Int64 с разделителем групп разрядов: неужели

...
Суть проблемы в том, что максимальное значение Int64 - 9 223 372 036 854 775 807, а при любом преобразовании в число с плавающей точкой цифра 7 пропадает и остаётся только: 9 223 372 036 854 775 800 ...


Не могу воспроизвести косяк - семерка не потерялась.


procedure TMF.Button1Click ...
avmaksimov
08.02.2023 23:25:25
Форум: Free Pascal Compiler
Тема: Конвертация Int64 с разделителем групп разрядов: неужели?!)
Ответы: 50
Просмотры: 40145

Re: Конвертация Int64 с разделителем групп разрядов: неужели

iskander писал(а):
avmaksimov писал(а):Вы не пробовали коммитить на GitLab решение в RTL?
Да упаси меня господь.
А если я?) Не тщеславия ради, но популярности Паскала для))
avmaksimov
08.02.2023 23:15:09
Форум: Free Pascal Compiler
Тема: Конвертация Int64 с разделителем групп разрядов: неужели?!)
Ответы: 50
Просмотры: 40145

Re: Конвертация Int64 с разделителем групп разрядов: неужели

В смысле? Вы же по одному символу разбираете.

...
type
TChar2 = array[0..1] of Char;
...

Вот как это сможет быть одним символом?
Не заметил, что речь про тест. Кстати, не нравился мне ваш case)), но по факту лучше ничего не придумали тут тоже: https://forum.lazarus.freepascal.org/index.php ...
avmaksimov
08.02.2023 22:22:35
Форум: Free Pascal Compiler
Тема: Конвертация Int64 с разделителем групп разрядов: неужели?!)
Ответы: 50
Просмотры: 40145

Re: Конвертация Int64 с разделителем групп разрядов: неужели

Почему не засунуть в Format extended, а не int64?
Ну, наверное, потому что, что никакой разницы: просто явная конвертация. Я проверял. Результат тот же.

Добавлено спустя 7 минут 28 секунд:
А почему вы используете массивы, а не используете код символа?
Да я бы со всем моим удовольствием, а ...
avmaksimov
08.02.2023 20:51:09
Форум: Free Pascal Compiler
Тема: Конвертация Int64 с разделителем групп разрядов: неужели?!)
Ответы: 50
Просмотры: 40145

Re: Конвертация Int64 с разделителем групп разрядов: неужели

Кстати, насчёт Str(), Asmа и иже с ними:

program test_str;

{$mode objfpc}{$H+}

uses
SysUtils;

function GetStrLen(AValue: UInt64): Integer; inline;
begin
case AValue of
0..9: Result := 1;
10..99: Result := 2;
100..999: Result := 3;
1000..9999: Result := 4;
10000..99999: Result := 5 ...
avmaksimov
08.02.2023 12:39:22
Форум: Free Pascal Compiler
Тема: Конвертация Int64 с разделителем групп разрядов: неужели?!)
Ответы: 50
Просмотры: 40145

Re: Конвертация Int64 с разделителем групп разрядов: неужели


Не правда ваша ! :D
https://i.ibb.co/2Yjf5tJ/Test-Int-To-Str-500.jpg
Вот FloatToStrF действительно отстал и заметно, а метод Move при работе с более длинным числом не много но быстрее.
А вы пробовали со значением по умолчанию? Оно же больше? Результат какой? Если можете, проверьте на разных ...
avmaksimov
08.02.2023 08:02:13
Форум: Free Pascal Compiler
Тема: Конвертация Int64 с разделителем групп разрядов: неужели?!)
Ответы: 50
Просмотры: 40145

Re: Конвертация Int64 с разделителем групп разрядов: неужели

avmaksimov , я тоже занимался, только оптимизацией в скорость Pascal .

Посмотрел ваш код. "Много буковок") Скажите, не пробовали ли вы через "чистую математику"?) Я имею в виду подсчитать число символов в будущей строке через trunc(log10(number))+1, а далее, как и полагается записывать с конца ...
avmaksimov
07.02.2023 22:35:22
Форум: Free Pascal Compiler
Тема: Конвертация Int64 с разделителем групп разрядов: неужели?!)
Ответы: 50
Просмотры: 40145

Re: Конвертация Int64 с разделителем групп разрядов: неужели


Есть идея что это все же UTF8 глючит или оптимизация под "многоядерность" вылезла.
( но больше всего похоже на банальный "зомби-процесс" весящий в памяти который перехватывает обработку у исправленных версии после нескольких плохо обработанных исключений, и в результате все попытки экстренно ...
avmaksimov
07.02.2023 14:26:54
Форум: Free Pascal Compiler
Тема: Конвертация Int64 с разделителем групп разрядов: неужели?!)
Ответы: 50
Просмотры: 40145

Re: Конвертация Int64 с разделителем групп разрядов: неужели

Десятичные разделители - это вообще странно.
Можно менять только последний символ на правильный. :D
Вы неверно поняли. Речь про разделить тысяч. Читать строку "1 235 656 788" приятнее и понятнее, чем "1235656788".

Ну и не последний символ, а какой-то)) Но речь тут про целые числа. Для чисел с ...
avmaksimov
07.02.2023 13:18:32
Форум: Free Pascal Compiler
Тема: Конвертация Int64 с разделителем групп разрядов: неужели?!)
Ответы: 50
Просмотры: 40145

Re: Конвертация Int64 с разделителем групп разрядов: неужели

iskander писал(а):
avmaksimov писал(а):В моём случае память будет выделена один раз.
Таки два.
Согласен, но я имел в виду, что на первоначальную строку память будет выделена в любом случае. Str переписывать на Паскале нет смысла, т.к. написана на Асме.
avmaksimov
07.02.2023 12:26:15
Форум: Free Pascal Compiler
Тема: Конвертация Int64 с разделителем групп разрядов: неужели?!)
Ответы: 50
Просмотры: 40145

Re: Конвертация Int64 с разделителем групп разрядов: неужели

ИМХО:Довольно странная функция.
Зачем там SetLength(Result, vResLen); и т.п. ?
Можно ведь просто написать что-то вроде этого.

function IntToStrTS(const AValue: SizeUInt): string;
var i, vSrcLen, , vResLen: byte;
begin
Str(AValue, Result);
vSrcLen := Result.Length;
vResLen := vSrcLen ...
avmaksimov
06.02.2023 08:05:25
Форум: Free Pascal Compiler
Тема: Конвертация Int64 с разделителем групп разрядов: неужели?!)
Ответы: 50
Просмотры: 40145

Re: Конвертация Int64 с разделителем групп разрядов: неужели

Я постарался сделать свою оптимизированную функцию. В принципе, внутри ей пофигу на тип, но делать такое странное форматирование строки было бы ещё более странным. Тем не менее, для популяризации языка, считаю, что данная функция должна быть must have. Одно дело, когда округляется число с дробной ...
avmaksimov
04.02.2023 20:32:14
Форум: Free Pascal Compiler
Тема: Конвертация Int64 с разделителем групп разрядов: неужели?!)
Ответы: 50
Просмотры: 40145

Конвертация Int64 с разделителем групп разрядов: неужели?!)

Решил доработать один проект и перевести целое число типа Int64 в строку с разделителем. И вот любимый формат тут не поможет, ибо "%n" жаждет чего-то с точкой. Все остальные решения не далеко ушли (FloatToStrF c ffNumber). Суть проблемы в том, что максимальное значение Int64 - 9 223 372 036 854 775 ...
avmaksimov
04.11.2010 13:41:26
Форум: Lazarus
Тема: Выполнение SQL-скрипта через TSQLScript...
Ответы: 11
Просмотры: 9301

Re: Выполнение SQL-скрипта через TSQLScript...

Создал запись в баг-трекере: http://mantis.freepascal.org/view.php?id=17829 . Посмотрим, что ответят!