Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Учим языки программирования
GAMEINATOR forums > Soft, Hard и периферия > Hard & Soft
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16
jamakasi
Сколько людей столько и подходов wink.gif
FOX
Как в delphi прочесть размер файла, открыв его с помощью диалогового окна?
jamakasi
Цитата(FOX @ 26.05.2012, 20:17) *
Как в delphi прочесть размер файла, открыв его с помощью диалогового окна?

ъttp://www.delphi-manual.ru/filesize.php
FOX
Как подключить db к делфи?

Знаю что для подключения например базы access-а нужно сделать ADOConnection, в стринге написать что-то типо "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=1.accdb;Persist Security Info=False", сделать Tdbgrid...а дальше... biggrin1.gif
Hentaijke
Возможно не в той теме пишу, но нет ли у кого нибудь учебника по Microsoft SQL server 2008. Создание баз данных и т.д.
jamakasi
FOX,
Создаешь базу аксесную, в нее таблицу с полями, вписываешь пару полей сразу.
В делфи создаеш вцл приложение, кидаешь на форму адо конекшен в нем пошоркай есть визард по подключению там обязательно выбири драйвер jet. Кидаешь компоненты адотейбл датасурс датасет. в каждом из них увидишь в настройках к какому компонету они хатят подцепиться. В событии создания формы прописываешь активацию связи с базой(адоконекшен.сонектед = тру). Для примитивного вывода этого хватит.

Hentaijke,
Качай любую книгу по базам неошибешься. Главное не какая база используется а вкурить нормализации и т.п.. А создание таблиц и их связи это все дело нажатия 2-3 кнопок или одной строчки sql кода.
den-ver
Товарищи.
Собираюсь изучить ассемблер.
"База" у меня есть.
Я технарю в команде роботехников при универе (АГТУ) + средне знаю LUA.
Подскажите хорошую книгу.
jamakasi
pro100denver,
Про луа можешь забыть вообще.
Про ассемблер для начала определись на какую архитектуру направишь свои очи, потом забудь личную жизнь, вычеркни из жизни лет 5(минимум) и велком на йttp://wasm.ru/. А вообще советую не насиловать мозг и учить С, сейчас в 99% даже самый убогий микроконтроллер поставляется с компиляторами на С и не слабой базой исходников к нему вместе с книгами. С учетом того что есть некоторые знания луа то будет проще.
den-ver
jamakasi,
LUA просто по гейм-девелоперской сфере.
Спасибо за линк.
l3kar
Цитата(pro100denver @ 03.06.2012, 00:26) *
Товарищи.
Собираюсь изучить ассемблер.
"База" у меня есть.
Я технарю в команде роботехников при универе (АГТУ) + средне знаю LUA.
Подскажите хорошую книгу.

Когда дома буду, скину учебник по ассемблеру, который нам давали в универе, для выполнения курсовых. Для изучения основ он отлично подойдет.
l3kar
Цитата(pro100denver @ 03.06.2012, 00:26) *
Собираюсь изучить ассемблер.
Подскажите хорошую книгу.

http://dl.dropbox.com/u/55837148/%D0%9C%D0...D0%B0%D1%85.pdf
autistic
pro100denver, чтобы прогать микроконтроллеры вовсе не обязательно знать асм, учи сишечку лучше.
VIGUR
refuse, согласен. Си хватит.
А asm можно по разному учить: так, чтобы только разобраться, - это одно, а чтобы действительно круто шарить - это другое.
HappyMenses
Цитата(VIGUR @ 03.06.2012, 13:54) *
refuse, согласен. Си хватит.
А asm можно по разному учить: так, чтобы только разобраться, - это одно, а чтобы действительно круто шарить - это другое.


В Ассемблере не возможно разобраться без "крутого шаривания".
Ты или шаришь в нем или нет.
VIGUR
mendoza, ну я имею в виду, что можно чуть-чуть, на уровне лаб в универе. rolleyes.gif
den-ver
l3kar,
Спасибо
Green
Собираюсь учить PHP. Посоветуйте годную книгу.
Da Man
green_stalker, Деннис Ритчи, язык программирования си. Потом уже РНР wink.gif
Ронин
Привет всем. Нужна помощь в написании скрипта на MEL для Майи. Пишите в ЛС.
Shoкer
Потихоньку разбираюсь в C++ и назрел вроде как банальный вопрос.
Делаю в Visual Studio не консольное приложение, и для отладки хочу выводить данные в обычную командную строки винды.
Но тут проблема в том, что она сразу закрывается после отправки команды.
Пробовал сперва printf() - в визуальном приложении он не работает.
Потом попробовал sytem() - текст выводился но окно закрывалось.
В итоге нашёл такую комбинацию: system(cmd /k echo "МойТекст");
Всё выводится прекрасно, НО выводит тока первую строку.
Если я пишу две такие команды, то выводится лишь первая, а остальные уже не показываются.

system(cmd /k echo "1");
system(cmd /k echo "2");

Выведется только 1 =(

Подскажите как удобней всего вести отладочный лог (не средствами Visual Studio) или как можно запретить командной строке закрываться после выполнения команды.
Da Man
Тебе надо создать консольное окно и выводить уже в него...
V@NEK
Shoкer, у винды есть какая-то команда, которая позволяет ожидать нажатия пользователем клавиши. Поищи её название, я сейчас сходу не вспомню. (эта программа как раз выводит "нажмите любую клавишу чтобы продолжить").
Love
system("PAUSE");
_призрак_
Или как вариант написать в конце программы (перед return 0; )
getchar()
Shoкer
Da Man
Спасибо, теперь получилось нормально сформировать запрос для гугла laugh.gif
Искал по другим словам, и не находил то что нужно.
Сейчас вроде что то откопал, завтра буду пробовать. Спс. за наводку.

_призрак_
Вариант с getch() пробовал, он годится лишь в том случае, если все сообщения выводить сразу за 1 раз, а иначе если остановить консоль через getch(), то новые сообщения на ней просто не появляются. Аналогично с паузами. sad.gif
Shoкer
С++
Если кому надо - простая функция-оболочка над printf()
При вызове создаёт консольное окно, перенаправляет выводимый текст с printf() (и остальных функций stdio.h)
на это консольное окно, а также выводит отформатированный текст аля функция printf()
Функция полезна, если создаёте не консольное приложение, но хотите выводить свою отладочную информацию в консоль.

CODE

#include <stdio.h> // printf()
#include <windows.h> // Консоль
...
static bool shown = false;

void Log(const char* format, ...)
{
if (shown == false)
{
shown = true;
AllocConsole();
freopen("conin$", "r", stdin);
freopen("conout$", "w", stdout);
freopen("conout$", "w", stderr);
}

va_list marker;
va_start( marker, format );
vprintf(format, marker);
va_end( marker );
}


Пример использования:
Log("TestInt: 1 = %d, 2 = $d \n", 123, 456);

Наверняка здесь есть косяки, так как ещё мало в чём разбираюсь и это в основном результат копи-пасты, но своё дело эта функция выполняет.
autistic
Цитата(Shoкer @ 02.09.2012, 17:46) *
Наверняка здесь есть косяки

у этого кода есть недостатки:
1. windows specific
2. неприменим в многопоточных приложениях (что будет, если ф-ию вызвать впервые из двух потоков одновременно?)
3. после вызова AllocConsole() обычно где-то следует вызывать FreeConsole()
4. (что-то еще?)
Shoкer
1) Дельное замечание, хотя я не думаю, что это помеха для тех, кого этот код тут заинтересует
2) Многопоточность мне не скоро светит biggrin.gif, не представляю как с ней работать.
3) Free я так понимаю лучше вызывать при закрытии программы? Иначе же консоль каждый раз будет пере-создаваться.
4) м.б smile.gif
autistic
Цитата(Shoкer @ 02.09.2012, 20:32) *
Free я так понимаю лучше вызывать при закрытии программы?

верно smile.gif а еще логичнее было бы вызывать эти ф-ии однократно, перед выводом данных в консоль и после.
Код
int main()
{
    AllocConsole();
    printf("blablabla\n");
    puts("ololo");
    ....
    FreeConsole();
    return 0;
}

но тогда возникает следующий вопрос - а есть ли вообще необходимость использовать эти ф-ии или проще в настройках проекта выбрать консольный тип? например можно для дебажной конфигурации указать консольный тип, а для релизной - оконный, тогда в отладочной сборке консоль будет появляться, а в релизной нет.
вот как выглядят настройки релизной конфигурации:


тогда точка входа будет выглядеть одинаково для оконного и для консольного приложения
Код
#include <stdio.h>

int main(void)
{
    puts("ololo");
    puts("press enter...");
    getchar();

    return 0;
}
Neo][
Цитата(Shoкer @ 01.09.2012, 02:07) *
Делаю в Visual Studio не консольное приложение, и для отладки хочу выводить данные в обычную командную строки винды.

Shoкer, обычно в таких случаях пользуются более простым способом smile.gif OutputDebugString. Тут тебе и многопоточность и отсутствие необходимости суппрессить в коде свои сообщения ну и отдельный плюс - избавляемся от велосипедов smile.gif
_призрак_
Shoкer
Дай-ка и я напишу пару недостатков
1. Не знаю как тебя, а меня утомляет дописывать всегда "\n" в конце сообщения. Забудешь - и в консольке "вырвиглаз"
3. Нет вывода функции, файла и строки, откуда было послано сообщение (погугли по словам __FILE__, __FUNCTION__, __LINE__)
4. Нет возможности прервать программу после вывода в лог

У меня есть файлик (старый уже), где в отдельном пространстве имен debug есть 3 функции - msg(file,function,line,format,...), warming(file,function,line,format,...),error(file,function,line,format,...), а также макрос, который автоматом меняет функцию Msg("some message"); в функцию Msg("some_file.cpp","some_function",999,"some message"); Получается очень удобноsmile.gif

А вообще код хороший. Если нечем будет заняться, то приглашаю порешать олимпиадные задачки на каком-нибудь сайте типа acmp
Shoкer
Цитата(refuse @ 02.09.2012, 20:23) *
верно smile.gif а еще логичнее было бы вызывать эти ф-ии однократно, перед выводом данных в консоль и после.


Не, так не сработает, FreeConsole() закрывает консоль. Получается что я вывожу сообщение, и тут же его закрываю.
Да и вообще имеет ли смысл эту функцию вызывать? Консоль закрывается вместе с закрытием приложения, есть разве что шанс что память утекает от этого, но вроде ничего подобного не обнаружил.

___

По поводу точки входа вариант, но просто хочется сделать переносную функцию, которую можно будет "брать с собой", и применять в других проектах на других компьютерах. Это быстрее чем под каждый проект переписывать настройки.

Neo][
Не получилось нагуглить достаточно информации, но я так понял это как раз строка для вывода сообщения в отладочное окно Visual Studio? Если да, то тоже вариант, но вдруг понадобиться отладить уже собранную программу, тогда без Visual Stuido не обойтись, а так включил галочку в собранной программе и сразу сообщения в консоль посыпались.

_призрак_
Не, до задач мне далековато. Я знаю основы, а дальше просто делаю что то, сталкиваюсь с незнанием, гуглю и иду дальше. Эт далеко не самый лучший метод изучения, но по крайнем мере самый быстрый для достижения простенькой цели.

1) Я не стал это делать на случаи если мне понадобиться вывести несколько коротких сообщений в строку.
2) Спс. за наводку, у мну пока программы маленькие, но в будущем пригодиться.
3) Пока не было необходимости, я на столько глубоко с этим не заморачивался ни разу.

PS: Кстати если не сложно, то можешь показать свои отладочные функции для изучения? smile.gif
autistic
Цитата(Shoкer @ 03.09.2012, 00:10) *
Не, так не сработает

> myprogram.exe >> output.txt
либо надо сделать задержку перед закрытием консоли.

Цитата(Shoкer @ 03.09.2012, 00:10) *
Да и вообще имеет ли смысл эту функцию вызывать?

это хороший тон.

Цитата(Shoкer @ 03.09.2012, 00:10) *
По поводу точки входа вариант, но просто хочется сделать переносную функцию, которую можно будет "брать с собой", и применять в других проектах на других компьютерах.

хозяин-барин, конечно, но этот вариант избавляет от необходимости таскать за собой платформ-специфик код и дает возможность пользоваться стандартными потоками ввода/вывода, которые в любой момент можно перенаправить хоть в файл, хоть куда угодно.
Tron
Цитата
У меня есть файлик (старый уже), где в отдельном пространстве имен debug есть 3 функции - msg(file,function,line,format,...), warming(file,function,line,format,...),error(file,function,line,format,...), а также макрос, который автоматом меняет функцию Msg("some message"); в функцию Msg("some_file.cpp","some_function",999,"some message"); Получается очень удобно

Зачем такие сложности?-почему бы не сделать так

Код
void Error(const TCHAR*t,const char*_file/*Тут именно чар,можно сделать перевод*/,int line,...)
#define LogWrite(a) Error(a,_FILE_,_LINE_)

void Error(const TCHAR*t,const char*_file/*Тут именно чар,можно сделать перевод*/,int line,...)
{
//Обрабатываем все аргументы-на выходе str-содержимое t и дополнительных аргументов("...")
....
str+=_T("In:")_file;
str+=_T("Line %d:")line;
LogMessage(str);
}


Писал по памяти,но принцип работает и используется в реальном проекте
Neo][
Цитата(Shoкer @ 03.09.2012, 02:10) *
Neo][
Не получилось нагуглить достаточно информации, но я так понял это как раз строка для вывода сообщения в отладочное окно Visual Studio? Если да, то тоже вариант, но вдруг понадобиться отладить уже собранную программу, тогда без Visual Stuido не обойтись, а так включил галочку в собранной программе и сразу сообщения в консоль посыпались.

Shoкer, можно и обойтись http://technet.microsoft.com/ru-ru/sysinternals/bb896647 wink.gif Здесь тебе и real-time, и простенькие фильтры/подсветка, запись в файл и т.п.



А вообще, обычно, пишут лог в файл, тогда можно и у пользователя этот файлик потом попросить smile.gif
Neo][
Shoкer, кстати по поводу отладки. Логирование в файл и "диалог ассёртов" можно утянуть из старого сталкер проекта, http://sourceforge.net/projects/xrfsl/. Лог конечно примитивнейший, а вот ассёрты я до сих пор иногда юзаю в проектах smile.gif
Диалог этот можно было видеть, например, в плагине ипорта геометрии.
autistic
Neo][, а зачем это все, просто assert'a недостаточно разве?
autistic
сам ассерт написать достаточно тривиальная задача http://ideone.com/qOuu6
а уж какаим образом будет выведено сообщение, хоть в файл, хоть в консоль, хоть в 3д-вьюпорт, это дело десятое, не ассертово это дело smile.gif
Tron
Цитата(Tron @ 03.09.2012, 17:20) *
Цитата
У меня есть файлик (старый уже), где в отдельном пространстве имен debug есть 3 функции - msg(file,function,line,format,...), warming(file,function,line,format,...),error(file,function,line,format,...), а также макрос, который автоматом меняет функцию Msg("some message"); в функцию Msg("some_file.cpp","some_function",999,"some message"); Получается очень удобно

Зачем такие сложности?-почему бы не сделать так

Код
void Error(const TCHAR*t,const char*_file/*Тут именно чар,можно сделать перевод*/,int line,...)
#define LogWrite(a) Error(a,_FILE_,_LINE_)

void Error(const TCHAR*t,const char*_file/*Тут именно чар,можно сделать перевод*/,int line,...)
{
//Обрабатываем все аргументы-на выходе str-содержимое t и дополнительных аргументов("...")
....
str+=_T("In:")_file;
str+=_T("Line %d:")line;
LogMessage(str);
}


Писал по памяти,но принцип работает и используется в реальном проекте

Перечитал текст,пардон,сделал тоже самое.
Извини,я был после ВМ
autistic
всех с праздником )
Shoкer
Не совсем по теме, но вдруг повезёт.
Есть вектор V(x,y,z)
Есть поворот вида R(1.0,0.5,-0.7)

Как правильно повернуть вектор V на поворот R? Наиболее быстрым способом.
Рыскаю по интернету но с переменным результатом, а у самого что то пока полный швах с пониманием...
Может кто то подкинет ссылку на хороший пошаговый пример?
autistic
если R - это углы поворота вокруг осей x, y, z, соответственно, тогда тебе исходя из этих условий нужно найти матрицу поворота, соответствующую заданной системе координат, и умножить вектор на эту матрицу. это можно осуществить двумя способами:

способ 1, хардкорный
результирующую матрицу можно найти как произведение трех матриц поворота вокруг осей x,y,z, важно только соблюдать порядок перемножения. о том что такое матрица поворота можно почитать на википедии, про умножение вектора на матрицу можно найти там же, остается только закодировать.

способ 2 гуглокулхацкерский
можно, вооружившись гуглом, посмотреть как реализована математика в различных трехмерных движках. вот пример кода из огра (не самый лучший пример, да, но зато доступный)
получение матрицы поворота из углов эйлера
умножение вектора на матрицу
nuan
Shoкer есть отличная книга , в которой все написано, причем с кодом и т.п.
А пока искал... Немного ошибся в гугле и вот результат:

autistic
я тут набросал на скорую руку примерчик на сишечке: http://ideone.com/rwNId
Marauder
Камрады! Нужна помощь! На С++ нужно написать калькулятор, который считает десятичные числа. Как сделать проверку для окна, чтобы можно было ввести цифры и точку? Есть там параметр у поля Только цифры, но тогда точка не ставится. Помогите плз)
Son1c
Цитата(Marauder @ 25.11.2012, 12:31) *
Камрады! Нужна помощь! На С++ нужно написать калькулятор, который считает десятичные числа. Как сделать проверку для окна, чтобы можно было ввести цифры и точку? Есть там параметр у поля Только цифры, но тогда точка не ставится. Помогите плз)

Используй вместо Edit MaskEdit с необходимой маской.
Marauder
Не могу найти что то. Не подскажешь где искать?
autistic
Marauder, какую среду/библиотеку используешь?

upd.
http://www.functionx.com/bcb/controls/maskedit.htm
HappyMenses
Цитата(nuan @ 22.09.2012, 21:42) *
Shoкer есть отличная книга , в которой все написано, причем с кодом и т.п.
А пока искал... Немного ошибся в гугле и вот результат:

Ухахахаха чем она отличная? Тем, что большая и с картинками? Или ты это над ним так издеваешься? xDDDD

Автор написал свой графический API, и учит как им пользоваться для создание графической игры.
Да, в книге хорошо изложенна теория, но она устарела уже лет как 6 назад.
Книга даже не стоит внимания.
Shoкer
Цитата(Marauder @ 25.11.2012, 13:31) *
Камрады! Нужна помощь! На С++ нужно написать калькулятор, который считает десятичные числа. Как сделать проверку для окна, чтобы можно было ввести цифры и точку? Есть там параметр у поля Только цифры, но тогда точка не ставится. Помогите плз)


Если у элемента есть колбэк на введёный символ (короче функция, которая вызывается каждый раз для каждого символа при его вводе), то можешь просто сравнивать ASCII код символа и разрешать писать лишь только символы цифры\точки.
Вообще с визуальной средой С++ я не работал так что это тока предложение.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.