Без комментариев...
Огромное спасибо! Работает - а это главное )))
My Visual Database → Posts by k245
Без комментариев...
Огромное спасибо! Работает - а это главное )))
Классическая задача парсинга: имеется текстовый файл, размер очень большой, в память не загружается ( TStringList.LoadFromFileAnsi(), как и ожидалось, выдаёт Out of Memory ). Необходимо читать данные построчно.
Попробовал так:
const
BufSize = 1;
procedure Form1_Button1_OnClick (Sender: TObject; var Cancel: boolean);
var
FileName : string;
TextFile : TFileStream;
buf: Char;
tmpLine: string;
begin
FileName := ExtractFilePath( Application.ExeName ) + 'test.txt';
TextFile := TFileStream.Create( FileName, fmOpenRead );
TextFile.Seek(0,soFromBeginning);
while not (TextFile.Position >= TextFile.Size) do
begin
// считать строку
tmpLine := '';
while not (TextFile.Position >= TextFile.Size) do begin
TextFile.Read( buf, BufSize );
if buf = #13 then
begin
TextFile.Read(buf, BufSize ); // считать #10
break;
end;
tmpLine := tmpLine + buf;
end;
ShowMessage('Строка: '+tmpLine);
end;
TextFile.Free;
end;
Но оказалось, что метод TFileStream.Read передаёт в строку байт и тут же его преобразует в Юникод, что приводит к неверным результатам.
Эрудит. Первая версия.
Фичи - этот раздел обязателен для любого игрового проекта, и включает он различные хотелки и вкусности, придающие игре индивидуальность и притягательную особенность. Вот только вопрос о том, когда будет реализована (и будет ли вообще реализована) та или иная возможность всегда остаётся открытым. Но в начале процесса сюда можно писать всё, что в голову приходит, и это круто! Поскольку в составе игры будет словарь, можно заложить в игру дополнительную функциональность, связанную с обучением. По личному опыту игры в он-лайн версию "Эрудита" на платформе mail.ru мне там не хватало толкования слов, которые выкладывали мои визави, поэтому можно включить в игру не просто словарь существительных, а толковый словарь, например Ожегова или Ефремовой. А ещё лучше - создать систему, которую можно самостоятельно дополнять и расширять.
Читать далее:
https://createmyvisualdatabaseapp.blogs … st_25.html
k245 wrote:vovka3003 wrote:regsvr32 из SysWOW64 если..?
выдает ошибку:
...
От имени администратора.
Да, точно! Спасибо, так всё регится и работает потом! )) но я использовал 32-битную версию регистратора и батник со строкой:
c:\windows\system32\regsvr32 e:\mvd\padeg\padeg.dll
Вариант, который запускается без регистрации ком-сервера (только exe-шник хакать приходится после сборки).
Попробовал запустить экзешник из архива - ошибка выполнения.
А что за магия с манифестом? )))
Эрудит. Проектирование БД
Данная статья открывает цикл, посвященный созданию игр в среде разработки My Visual Database. Хотя основное назначение данной RAD - это разработка бизнес-приложений для работы с базами данных, но, благодаря наличию встроенного интерпретатора скриптов и довольно обширного набора поддерживаемых классов, My Visual Database можно использовать для создания игр. Разумеется, шутер или MMORPG сделать не получится, но возможно создавать игры, не требовательные к графике. Например обучающие и развивающие игры, в составе которых может быть база знаний.
Читать далее:
https://createmyvisualdatabaseapp.blogs … -post.html
осталось проверить вариант подключения DLL через DynamicWrapperX...
Предыдущую версию возьмите. Она без глюков.
Предыдущая версия вообще никак не ставится:
regsvr32 из SysWOW64 если..?
выдает ошибку:
Радоваться, но недолго, так как библиотека глючная, примерно через минуту OLE-сервер падает c ошибкой:
Тестировал на Win7x64
P.S. Простая регистрация (по прилагаемой к библиотеке инструкции) запуском regsrv32 вообще не выполняется - выдаёт ошибку установки сервера.
По-моему на delphikingdom лучшая(с стороны правильности склонения) что мне встречалась библиотека для склонения со всеми пояснениями... Если Вы окажите помощь каким образом можно использовать ее в MVD, Вам будет благодарен не один человек..)
Решение:
1. Скачать последнюю версию из группы - https://vk.com/public93917660
2. Зарегистрировать OLE по инструкции - https://kb.mista.ru/article.php?id=870 (разумеется, указав padegUAC.dll)
3. Пользовать по инструкции в документации:
procedure Form1_Button1_OnClick (Sender: TObject; var Cancel: boolean);
var
Decl : Variant;
begin
// Создается объект автоматизации:
Decl := CreateOleObject('PadegUCA.Declension');
// явное задание рода, дательный падеж
ShowMessage( Decl.GetFIOPadeg('Злотникова','Людмила','Владимирована','ж',3) );
end;
Вопрос остался без ответа
Точный ответ дать не получится, потому что вопрос неточный. Для объединения данных из несколько строк в одну используйте group_concat, примерно так:
SELECT
tablename.firstname || char(13) ||
( select
group_concat( (tablename.field1 || char(9) || tablename.field2 .. tablename.fieldn) SEPARATOR char(13) )
from tablename where tablename.firstname = 'Иванов' )
where tablename.firstname = 'Иванов'
Регулярно на форуме появляются темы, смысл которых сводится к тому, чтобы кто-то выполнил работу, которую автор темы не может или не хочет делать.А часто таким авторам даже лень поиск на форуме запустить, чтобы найти ответ на свой вопрос.
А как вы относитесь к халявщикам?
В базе данных могут храниться разные типы данных, в том числе и текст. Вас интересует количество символов в конкретной таблице и конкретном поле? Тогда поможет запрос, например, такой:
select sum( length( name ) ) from content
где name - имя текстового поля, content - имя таблицы
Выполните подобный запрос для всех текстовых полей всех таблиц базы данных и вы получите общее количество символов.
С праздником! )))
Это возможно:
procedure Form1_pQuestionQuect_OnMouseEnter (Sender: TObject);
var
tmpComponent:Tcomponent;
begin
if (Form1.TagString <> '') then
begin
tmpComponent := Form1.FindComponent(Form1.TagString);
if tmpComponent <> nil then
if tmpComponent is TWinControl then
TWinControl(tmpComponent).SetFocus;
end;
end;
Инерционный скроллинг
Одним из популярных приемов в реализации пользовательского интерфейса стал инерционный скроллинг, с помощью которого очень удобно проматывать длинные списки или текст. С помощью скрипта вы можете добавить этот эффект в вашу программу, созданную в среде разработки My Visual Database.
Читать далее:
https://createmyvisualdatabaseapp.blogs … st_23.html
Пусть ваш элемент называется MyControl, тогда
TWinControl(MyControl).ControlCount - число дочерних элементов, а
TWinControl(MyControl).Controls[] - массив дочерних элементов,
Почитайте статью "Читаем QR код" https://www.ph4.ru/qr_qrinside.php
В ней приводится алгоритм распознавания и ссылка на имеющиеся сейчас стандарты кодирования.
Только вот непонятно, как вы собираетесь сами коды считывать? My Visual Database - среда разработки настольных приложений, а технологии чтения QR-кодов в первую очередь ориентирована на смартфоны. К тому же My Visual Database не поддерживает прямого взаимодействие с веб-камерой или другими устройствами ввода видео/изображения.
Доброго дня. Мне тоже интересно больше узнать про встроенную функцию Translate.
Второй аргумент, как я понимаю, это новое значение текстовой переменной? А первый аргумент - это константа? Или текущее значение текстовой переменной? Если нужно несколько раз сменить значение, то делать так
Translate('Yes', 'Да');
...
Translate('Yes', 'Yes');
или так
Translate('Yes', 'Да');
...
Translate('Да', 'Yes');
Хочу заметить, что недоступные элементы должны выглядеть иначе, чем доступные. Иначе или вы пользователя с ума сведёте, или он достанет вас вопросами, почему он не может ввести данные в поле, которое выглядит, как все остальные, но недоступно
Другое дело, что не всегда стандартное поведение контролов при установке свойства Enabled = True совпадает с эстетическими ожиданиями. Лично я для TdbEdit , если нужно запретить изменения, ставлю свойство ReadOnly := True и меняю цвет фона на clBkInfo, но это уже на любителя.
Так а что у вас в этом варианте не работает? В самом запросе сортировки нет, значит записи будут выдаваться как бог на душу положит. При клике по колонкам неправильно сортируются строки таблицы?
Комбобокс + выбор из справочника
Выбор справочных данных из выпадающего списка комбобокса очень удобен при небольшом количестве значений. Но, если значений много или требуется разобраться, что за этими значениями стоит, удобно использовать для выбора нужного значения форму справочника, на которой есть фильтрация. Для каждой такой кнопки приходится писать один и тот же код. Очередная автоматизация позволит исключить ненужный копипаст и упростить создание вашего проекта.
Читать далее:
https://createmyvisualdatabaseapp.blogs … -post.html
Но, сортировка то происходит так, как будто в столбце не даты, а текст!
Т.е. сортировка дат происходит неверно.
Вы как сортировку задаёте? В запросе? Запрос в студию
Кликаете по колонкам? Проверил на последней версии, все работает:
P.S. Оставьте дату в запросе в покое и всё будет ОК. Я же вам уже писал, что вы своим форматированием делаете результат строкой
Не делайте форматирование в запросе - именно из-за него данные становятся обычным текстом. Если вам нужно изменить формат отображения даты, сделайте это скриптом на клиенте в обработчике onChange()
My Visual Database → Posts by k245
Powered by PunBB, supported by Informer Technologies, Inc.
Theme Hydrogen by Kushi