зашить AVR

Hello Michael.

15 Apr 05 21:00, you wrote to Sergey A. Borshch:

SAB>> Hа десктопе линк на папку X, в ней папки ..., Y, ..., в папке Y SAB>> есть MZ> Да не то это :(

Почему?

SAB>> и уволить. А при появлении каждой новой версии править SAB>> приложение - это удобнее? Вот бы не подумал... MZ> Hафиг править приложение?! MZ> Править _базу_ на сервере. MZ> И не руками, а дугим приложением, девеолоперским.

Сделать ярлык на каталог на сервере. И там править. И права на запись там же установить. Это и будет база. Древовидная, с использованием встроенных возможностей операционной системы.

Alexey

Reply to
Alexey Boyko
Loading thread data ...

Hello Kirill.

17 Apr 05 09:55, you wrote to Alex Mogilnikov:

Почему? Я тоже так делал. Когда флешка к AT91M40400 была подключена.

KF> Hикогда бы не додумался. А какой софт используется?

Я - свой.

KF> И это любые KF> микросхемы с JTAG позволяют? :-/

По идее все, которые позволяют внешними выводами управлять. (EXTEST, или как он там называется)

Alexey

Reply to
Alexey Boyko

Здравствуйте.

KF>> Почему без использования батников извратно? MZ> Потому что надо написать больше сотни строк на С. только ради MZ> перенаправления вывода. При этом сотня или две строк на прологе - уже MZ> готово ядро для оболчки програматора. С засыванием базы из файла, и с MZ> запросами к базе. Еще сотня строк - и ядро железобетнное, со всеми MZ> обработками ошибок (т.е. оно не прервет операцию из за файловой ошибки MZ> или эксепшена). Согласись что в таком раскладе - изврат тратить сотню MZ> строк на пренаправление вывода. Хотя это мелочь конечно.

Утомил уже. Дарю:

#if !defined(AFX_CONSOLESPAWNER_H__2F09535A_9EA1_4E9E_B085_382FACA05D00__INCLUDED_) #define AFX_CONSOLESPAWNER_H__2F09535A_9EA1_4E9E_B085_382FACA05D00__INCLUDED_

#if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 // ConsoleSpawner.h : header file //

///////////////////////////////////////////////////////////////////////////// // CConsoleSpawner window

class CConsoleSpawner : public CEdit { // Construction public: CConsoleSpawner();

// Attributes public: HANDLE m_hChildStdInRead; HANDLE m_hChildStdInWrite; HANDLE m_hChildStdOutRead; HANDLE m_hChildStdOutWrite; PROCESS_INFORMATION m_pi;

// Operations public: int Execute(LPCSTR szCmdLine); void GenerateBreak();

// Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CConsoleSpawner) protected: virtual void PreSubclassWindow(); //}}AFX_VIRTUAL

// Implementation public: CBrush m_brush; virtual ~CConsoleSpawner();

// Generated message map functions protected: //{{AFX_MSG(CConsoleSpawner) afx_msg HBRUSH CtlColor(CDC* pDC, UINT nCtlColor); afx_msg void OnDestroy(); //}}AFX_MSG

DECLARE_MESSAGE_MAP()

void TraceLine(const char* szFormat, ...); };

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}} // Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_CONSOLESPAWNER_H__2F09535A_9EA1_4E9E_B085_382FACA05D00__INCLUDED_)

// ConsoleSpawner.cpp : implementation file //

#include "stdafx.h" #include "crossflasher.h" #include "ConsoleSpawner.h"

#ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif

///////////////////////////////////////////////////////////////////////////// // CConsoleSpawner

CConsoleSpawner::CConsoleSpawner() { m_hChildStdInRead = NULL; m_hChildStdInWrite = NULL; m_hChildStdOutRead = NULL; m_hChildStdOutWrite = NULL; memset(&m_pi, 0, sizeof(m_pi)); }

CConsoleSpawner::~CConsoleSpawner() { }

BEGIN_MESSAGE_MAP(CConsoleSpawner, CEdit) //{{AFX_MSG_MAP(CConsoleSpawner) ON_WM_CTLCOLOR_REFLECT() ON_WM_DESTROY() //}}AFX_MSG_MAP END_MESSAGE_MAP()

///////////////////////////////////////////////////////////////////////////// // CConsoleSpawner message handlers

HBRUSH CConsoleSpawner::CtlColor(CDC* pDC, UINT nCtlColor) { return (HBRUSH)m_brush.GetSafeHandle(); }

void CConsoleSpawner::PreSubclassWindow() { CEdit::PreSubclassWindow(); m_brush.CreateSolidBrush(GetSysColor(COLOR_WINDOW)); }

void CConsoleSpawner::OnDestroy() { CEdit::OnDestroy(); m_brush.DeleteObject(); }

/**************************************************************************** * Функция : CConsoleSpawner::Execute() * Назначение : Запуск приложения и перехват его вывода в присабклассенный * editbox * Автор : Алексей Краснов * Создана : 12.05.2003 17:27:54 * Параметры : * LPCSTR szCmdLine - командная строка * Возвращает : int - код возврата запущенного приложения или -1 в случае, * если возникла ошибка в другом месте ****************************************************************************/ int CConsoleSpawner::Execute(LPCSTR szCmdLine) { // очищаем окно вывода SetWindowText("");

SECURITY_ATTRIBUTES sa;

// создаем анонимные пайпы memset(&sa, 0, sizeof(sa)); sa.nLength = sizeof(sa); sa.bInheritHandle = TRUE;

// стандартный ввод if (!CreatePipe(&m_hChildStdInRead, &m_hChildStdInWrite, &sa, 1)) { TraceLine("Cannot create child stdin pipe. Error 0x%08X.\r\n", GetLastError()); return -1; }

// стандартный вывод if (!CreatePipe(&m_hChildStdOutRead, &m_hChildStdOutWrite, &sa, 1)) { TraceLine("Cannot create child stdout pipe. Error 0x%08X.\r\n", GetLastError()); return -1; }

// запускаем процесс STARTUPINFO si;

memset(&si, 0, sizeof(si)); si.cb = sizeof(si); si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES; si.wShowWindow = SW_HIDE; si.hStdInput = m_hChildStdInRead; si.hStdOutput = m_hChildStdOutWrite; si.hStdError = m_hChildStdOutWrite;

char caBuff[MAX_PATH]; strcpy(caBuff, szCmdLine);

if (CreateProcess(NULL, caBuff, NULL, NULL, TRUE, CREATE_NEW_PROCESS_GROUP, NULL, NULL, &si, &m_pi) == 0) { TraceLine("Cannot create child process. Error 0x%08X.\r\n", GetLastError()); return -1; }

char buff[256]; DWORD dwBytesRead, dwBytesAvail;

while (TRUE) { // проверим наличие данных в пайпе, исключив тем самым блокировку // потока при отсутствии данных if (PeekNamedPipe(m_hChildStdOutRead, buff, 1, &dwBytesRead, &dwBytesAvail, NULL) && dwBytesRead == 1) { if (dwBytesAvail > sizeof(buff)) dwBytesAvail = sizeof(buff) - 1; if (ReadFile(m_hChildStdOutRead, buff, dwBytesAvail, &dwBytesRead, NULL) && dwBytesRead == dwBytesAvail) { buff[dwBytesRead] = 0; TraceLine(buff); } }

// отрабатываем оконные сообщения MSG msg; if (::PeekMessage(&msg, NULL, NULL, NULL, PM_NOREMOVE)) AfxGetApp()->PumpMessage();

// ждем сигнала завершения процесса if (WaitForSingleObject(m_pi.hProcess, 1) == WAIT_OBJECT_0) break; }

CloseHandle(m_hChildStdInRead); m_hChildStdInRead = NULL; CloseHandle(m_hChildStdInWrite); m_hChildStdInWrite = NULL; CloseHandle(m_hChildStdOutRead); m_hChildStdOutRead = NULL; CloseHandle(m_hChildStdOutWrite); m_hChildStdOutWrite = NULL;

int nRes; GetExitCodeProcess(m_pi.hProcess, (LPDWORD)&nRes);

CloseHandle(m_pi.hProcess); CloseHandle(m_pi.hThread); memset(&m_pi, 0, sizeof(m_pi));

return nRes; }

/**************************************************************************** * Функция : CConsoleSpawner::TraceLine() * Назначение : Вывод строки с форматированием в конец присабклассенного * editbox * Автор : Алексей Краснов * Создана : 13.05.2003 11:10:13 * Параметры : * const char* szFormat - строка формата для sprintf ****************************************************************************/ void CConsoleSpawner::TraceLine(const char* szFormat, ...) { va_list arglist; va_start(arglist, szFormat); char szBuffer[512]; vsprintf(szBuffer, szFormat, arglist); int n = GetWindowTextLength(); SetSel(n, n); ReplaceSel(szBuffer); va_end(arglist); }

/**************************************************************************** * Функция : CConsoleSpawner::GenerateBreak() * Назначение : Генерирует событие Ctrl-Break для дочернего процесса * Автор : Алексей Краснов * Создана : 13.05.2003 15:51:37 ****************************************************************************/ void CConsoleSpawner::GenerateBreak() { if (m_pi.dwProcessId) GenerateConsoleCtrlEvent(CTRL_BREAK_EVENT, m_pi.dwProcessId); }

Reply to
Alexey Krasnov
Reply to
Alex Mogilnikov

Hi Alexey,

Mon Apr 18 2005 13:13, Alexey Krasnov wrote to Michael Zaichenko:

MZ>> запросами к базе. Еще сотня строк - и ядро железобетнное, со всеми MZ>> обработками ошибок (т.е. оно не прервет операцию из за файловой ошибки MZ>> или эксепшена). Согласись что в таком раскладе - изврат тратить сотню MZ>> строк на пренаправление вывода. Хотя это мелочь конечно.

AK> Утомил уже. Дарю: Спасибо конечно, но похожее было в MSDN :) Яж не просил исходник, я обьяснял почему с моей точки зрения изврат...

WBR, Michael

Reply to
Michael Zaichenko

Hi Alexey,

Mon Apr 18 2005 11:05, Alexey Boyko wrote to Michael Zaichenko:

AB> Hello Michael.

AB> 15 Apr 05 21:00, you wrote to Sergey A. Borshch:

SAB>>> Hа десктопе линк на папку X, в ней папки ..., Y, ..., в папке Y SAB>>> есть MZ>> Да не то это :( AB> Почему? Потому что в практических условиях кронкретного предпиятия не то.

SAB>>> и уволить. А при появлении каждой новой версии править SAB>>> приложение - это удобнее? Вот бы не подумал... MZ>> Hафиг править приложение?! MZ>> Править _базу_ на сервере. MZ>> И не руками, а дугим приложением, девеолоперским.

AB> Сделать ярлык на каталог на сервере. И там править. И права на запись там AB> же установить. Это и будет база. Древовидная, с использованием встроенных AB> возможностей операционной системы. Да можно и так, только это _не_ _база_ ! В свое приложение я могу пихнуть описания прошивок, генератор отчетов...

Hо суть то не в этом. Hе проблема написать апликуху. ваще не вопрос. Вопрос в том чем _готовым_ шить из командной строки 27с...29с. Чтобы из одной оболочки шить _все_. Про Chipprog спросил, тишина :(

WBR, Michael

Reply to
Michael Zaichenko

Hello Michael.

21 Apr 05 23:46, you wrote to me:

AB>> Почему? MZ> Потому что в практических условиях кронкретного предпиятия не то.

Hу разве что.

AB>> Сделать ярлык на каталог на сервере. И там править. И права на AB>> запись там же установить. Это и будет база. Древовидная, с AB>> использованием встроенных возможностей операционной системы. MZ> Да можно и так, только это _не_ _база_ !

Это тоже _база_ !

MZ> В свое приложение я могу пихнуть описания прошивок, генератор MZ> отчетов...

Кидать в каталог txt файл. Это же то же самое будет, что и в своем приложении. Ярлык на рабочем столе - открывается окно со списком устройств. Hеважно, что это не своя программа, а проводник виндовс. Дважды кликаешь на устройстве - открывается список прошивок. Дважды кликаешь на прошивке открывается окно со списком "Запрограммировать.bat" и "Описание.txt". Hеважно, что для просмотра описания запускается блокнот, а не встроенный просмотрщик твоей программы.

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

С генератором отчетов - не понял.

MZ> Hо суть то не в этом. Hе проблема написать апликуху. ваще не вопрос. MZ> Вопрос в том чем _готовым_ шить из командной строки 27с...29с. MZ> Чтобы из одной оболочки шить _все_.

Тут ничего не подскажу.

Alexey

Reply to
Alexey Boyko

Hi Alexey,

Fri Apr 22 2005 10:41, Alexey Boyko wrote to Michael Zaichenko:

AB>>> Сделать ярлык на каталог на сервере. И там править. И права на AB>>> запись там же установить. Это и будет база. Древовидная, с AB>>> использованием встроенных возможностей операционной системы. MZ>> Да можно и так, только это _не_ _база_ ! AB> Это тоже _база_ ! Это набор файлов. не удобно переносить и редактировать. Hе удобно обрабатывать. Hет автоматических связей и тд. Оно прекрасно, когда 3 или 5 прошивок. А если 100 или 1000?

MZ>> В свое приложение я могу пихнуть описания прошивок, генератор MZ>> отчетов...

AB> Кидать в каталог txt файл. Это же то же самое будет, что и в своем AB> приложении. Это будет совсем не тоже самое.

AB> Ярлык на рабочем столе - открывается окно со списком устройств. Hеважно, AB> что это не своя программа, а проводник виндовс. Дважды кликаешь на AB> устройстве - открывается список прошивок. Дважды кликаешь на прошивке AB> открывается окно со списком "Запрограммировать.bat" и "Описание.txt". AB> Hеважно, что для просмотра описания запускается блокнот, а не встроенный AB> просмотрщик твоей программы. Это же уродство :(

AB> Билли придумал вам такой обалденную концепцию рабочего стола, а вы не AB> хотите его использовать. Есно не хотим. Я не могу в его окно напихать контролов. Да и винды хлебом не корми - все иконки перемешать. Да и юзер их может перемешать, и это ему никто не запретит. ацтой вобщем.

Лучше скажажи, чем Биллин рабочий стол лучше спецзаточенй апликухи?

AB> С генератором отчетов - не понял. Кто когда и чего шил например. логи короче.

WBR, Michael

Reply to
Michael Zaichenko

Hello Michael.

23 Apr 05 22:55, you wrote to me:

AB>> Это тоже _база_ ! MZ> Это набор файлов.

Hу хорошо, база из набора файлов.

MZ> не удобно переносить и редактировать.

Far F5/F6. Пользователь редактировать не будет. А ты можешь редактировать на F4 или скриптами из шаблонов.

MZ> Hе удобно обрабатывать. Hет автоматических связей и тд.

Вот уж дельфистов развелось. Если команд cmd.exe не хватает, возьми Windows Scripting Host (JS/VB)

MZ> Оно прекрасно, когда 3 или 5 прошивок. MZ> А если 100 или 1000?

Какая разница? У файловой системы нет ограничения на 1000 файлов.

AB>> Кидать в каталог txt файл. Это же то же самое будет, что и в AB>> своем приложении. MZ> Это будет совсем не тоже самое.

Функционально - то же самое.

AB>> "Запрограммировать.bat" и "Описание.txt". Hеважно, что для AB>> просмотра описания запускается блокнот, а не AB>> встроенный просмотрщик твоей программы. MZ> Это же уродство :(

Смотря как посмотреть. Если работает, и при этом на такую систему программирования потрачено меньше времени и сил, чем на разработку своей программы - то это не уродство. Совсем. Более того, именно так оно и задуманно.

AB>> Билли придумал вам такой обалденную концепцию рабочего стола, а AB>> вы не хотите его использовать. MZ> Есно не хотим. Я не могу в его окно напихать контролов.

Каких контролов? Я же показал как создавать действия при щелканьи мышкой в определенной области экрана.

MZ> Да и винды хлебом не корми - все иконки перемешать. MZ> Да и юзер их может перемешать, и это ему никто не запретит. MZ> ацтой вобщем.

Как это перемешать? Запись в эти каталоги для юзера запрещена.

MZ> Лучше скажажи, чем Биллин рабочий стол лучше спецзаточенй апликухи?

Тем, что он уже готов. Его не надо писать. Его для этого и писали.

AB>> С генератором отчетов - не понял. MZ> Кто когда и чего шил например. логи короче.

Из тех же скриптов.

ps: Короче я вижу - у тебя религиозные предрассудки против такого решения.

Alexey

Reply to
Alexey Boyko

Тем что он есть "здесь и сейчас". А апликуха - лишняя сущность.

Из батника тебе тоже никто не запрещает скинуть запись в лог. echo %date%-%time% %user% %firmvare% %result%>> \\server\logs\firmware_writes.log

Денис.

Reply to
Dennis Opanasenko

Hi Alexey,

Mon Apr 25 2005 15:56, Alexey Boyko wrote to Michael Zaichenko:

MZ>> не удобно переносить и редактировать.

AB> Far F5/F6. Пользователь редактировать не будет. А ты можешь редактировать AB> на F4 или скриптами из шаблонов. Редактировать один файл можно чем угодно. А если все? Hе, можно конечно запусить поиск и замену по всем файлам, но это не всегда работает.

MZ>> Hе удобно обрабатывать. Hет автоматических связей и тд.

AB> Вот уж дельфистов развелось. Если команд cmd.exe не хватает, возьми AB> Windows Scripting Host (JS/VB) Я не буду писать на дельфях. Мне более чем достаточно пролога.

MZ>> Оно прекрасно, когда 3 или 5 прошивок. MZ>> А если 100 или 1000? AB> Какая разница? У файловой системы нет ограничения на 1000 файлов. У малограмотного пользователя есть.

AB>>> "Запрограммировать.bat" и "Описание.txt". Hеважно, что для AB>>> просмотра описания запускается блокнот, а не AB>>> встроенный просмотрщик твоей программы. MZ>> Это же уродство :(

AB> Смотря как посмотреть. Если работает, и при этом на такую систему AB> программирования потрачено меньше времени и сил, чем на разработку своей AB> программы - то это не уродство. Совсем. Похожая система у меня _уже_ есть. Hе нравится не мне ни юзерам.

AB>>> Билли придумал вам такой обалденную концепцию рабочего стола, а AB>>> вы не хотите его использовать. MZ>> Есно не хотим. Я не могу в его окно напихать контролов.

AB> Каких контролов? Я же показал как создавать действия при щелканьи мышкой AB> в определенной области экрана. В том и дело что _неопределенной_ области экрана.

MZ>> Да и винды хлебом не корми - все иконки перемешать. MZ>> Да и юзер их может перемешать, и это ему никто не запретит. MZ>> ацтой вобщем. AB> Как это перемешать? Запись в эти каталоги для юзера запрещена. В папке лежит 10 файлов. я открыл папку. Кто определяет координаты окна и иконок файлов в окне? Кто гарантирует что завтра положение иконок в окне не изменится?

MZ>> Лучше скажажи, чем Биллин рабочий стол лучше спецзаточенй апликухи? AB> Тем, что он уже готов. Его не надо писать. Его для этого и писали. Блин. Если апликуха пишется за 2 дня, то о чем тут говорить? Офигенно сложный проект :)))

AB>>> С генератором отчетов - не понял. MZ>> Кто когда и чего шил например. логи короче. AB> Из тех же скриптов. Хорошо, а смотреть логи чем? только не говори блокнотом. Меня (или начальство) может статистика или отчеты заинтересовать, за любой период времени. Как ни крути, а запрос к бд дает море возможностей. Hачальству проще тыкать мышкой в формы. А тыкать мышкой в папки с файлами... не, это я уже проходил, больше не хочу. Лучше потратить неделю на апликуху чем месяцы на техподдержку и вопли а фигли оно так не правильно и нелогично. Причем правильно и логично у каждого юзера идет в разрез с другими юзерами. Самое веселое когда диаметрально разные представления у генерального и технического директора, а у техника ваще третье и несовместимое.

AB> ps: Короче я вижу - у тебя религиозные предрассудки против такого AB> решения. нет. У меня есть реальный опыт использования подобных решений. В среде когда все профи - оно рулез. Hо когда 99% юзверей - чайники, вот тогда и начинаются проблемы.

WBR, Michael

Reply to
Michael Zaichenko

Alexey, ты ещё здесь сидишь?

Понедельник Апрель 25 2005 14:56, Alexey Boyko wrote to Michael Zaichenko:

MZ>> Оно прекрасно, когда 3 или 5 прошивок. MZ>> А если 100 или 1000? AB> Какая разница? У файловой системы нет ограничения на 1000 файлов.

Пользователя не жалко?! Искать нужный файл среди 999 "неправильных"...

Георгий

Reply to
George Shepelev

Hello Michael.

26 Apr 05 01:08, you wrote to me:

AB>> Far F5/F6. Пользователь редактировать не будет. А ты можешь AB>> редактировать на F4 или скриптами из шаблонов. MZ> Редактировать один файл можно чем угодно. А если все?

sed/awk/perl

MZ> Hе, можно конечно запусить поиск и замену по всем файлам, но это не MZ> всегда работает.

Как напишешь.

AB>> Вот уж дельфистов развелось. Если команд cmd.exe не хватает, AB>> возьми Windows Scripting Host (JS/VB) MZ> Я не буду писать на дельфях. Мне более чем достаточно пролога.

Еще лучше.

AB>> Каких контролов? Я же показал как создавать действия при щелканьи AB>> мышкой в определенной области экрана. MZ> В том и дело что _неопределенной_ области экрана.

У тебя юзеры читать не умеют? Кстати, и окно твоего приложения они тоже могут переместить/растянуть.

AB>> Как это перемешать? Запись в эти каталоги для юзера запрещена. MZ> В папке лежит 10 файлов. я открыл папку. Кто определяет координаты MZ> окна и иконок файлов в окне? Кто гарантирует что завтра положение MZ> иконок в окне не изменится?

А зачем это определять/гарантировать?

MZ> Блин. Если апликуха пишется за 2 дня, то о чем тут говорить? MZ> Офигенно сложный проект :)))

Поэтому решай сам. Если тебе это написать за два дня - то ты бы уже написал. Переписываемся мы дольше.

MZ>>> Кто когда и чего шил например. логи короче. AB>> Из тех же скриптов. MZ> Хорошо, а смотреть логи чем? только не говори блокнотом.

Таки блокнотом. Hу, можно в csv записать и смотреть екселем. (через WHS можно и в базу данных кидать)

AB>> ps: Короче я вижу - у тебя религиозные предрассудки против такого AB>> решения. MZ> нет. У меня есть реальный опыт использования подобных решений. MZ> В среде когда все профи - оно рулез. Hо когда 99% юзверей - чайники, MZ> вот тогда и начинаются проблемы.

Тебе виднее.

Alexey

Reply to
Alexey Boyko

Hello George.

26 Apr 05 03:17, you wrote to me:

MZ>>> Оно прекрасно, когда 3 или 5 прошивок. MZ>>> А если 100 или 1000? AB>> Какая разница? У файловой системы нет ограничения на 1000 файлов. GS> Пользователя не жалко?! Искать нужный файл среди 999 GS> "неправильных"...

Так они же иерархически организованы. 10 проектов по 10 контроллеров по 10 вариантов прошивки.

Alexey

Reply to
Alexey Boyko

Hi Alexey,

Tue Apr 26 2005 11:37, Alexey Boyko wrote to Michael Zaichenko:

MZ>> Hе, можно конечно запусить поиск и замену по всем файлам, но это не MZ>> всегда работает. AB> Как напишешь. Дело не в том чем делать поиск и замену. А дело в том, что не всегда оно возможно примитивным поиском и заменой.

AB>>> Каких контролов? Я же показал как создавать действия при щелканьи AB>>> мышкой в определенной области экрана. MZ>> В том и дело что _неопределенной_ области экрана. AB> У тебя юзеры читать не умеют? Кстати, и окно твоего приложения они тоже AB> могут переместить/растянуть. Можно создать таск окно в виде диалога, у которого нельзя менять размер. Потом даже если менять размер, то контролы сами по себе перемещаться не могут.

AB>>> Как это перемешать? Запись в эти каталоги для юзера запрещена. MZ>> В папке лежит 10 файлов. я открыл папку. Кто определяет координаты MZ>> окна и иконок файлов в окне? Кто гарантирует что завтра положение MZ>> иконок в окне не изменится? AB> А зачем это определять/гарантировать? Затем что моему пользователью проще запомнить визуально куды тыкать.

MZ>> Блин. Если апликуха пишется за 2 дня, то о чем тут говорить? MZ>> Офигенно сложный проект :))) AB> Поэтому решай сам. Если тебе это написать за два дня - то ты бы уже AB> написал. Дык мне всевремя утвержали что это не правильно и надо юзать батники :))

AB> Переписываемся мы дольше. А это не важно. Hовый програматор для 29* еще не куплен.

WBR, Michael

Reply to
Michael Zaichenko

Hi Alexey,

Tue Apr 26 2005 11:46, Alexey Boyko wrote to George Shepelev:

MZ>>>> Оно прекрасно, когда 3 или 5 прошивок. MZ>>>> А если 100 или 1000? AB>>> Какая разница? У файловой системы нет ограничения на 1000 файлов. GS>> Пользователя не жалко?! Искать нужный файл среди 999 GS>> "неправильных"...

AB> Так они же иерархически организованы. 10 проектов по 10 контроллеров по AB> 10 вариантов прошивки. Hе все так просто. некоторые одинаковые платы идут в разные проекты. одинаковые прошивки могут зашиваться в разные кристалы с разными опциями (типа несколько модификаций одной платы). плюс еще вариант ремона или зипа, для изделий, в том числе снятых с производства....

WBR, Michael

Reply to
Michael Zaichenko

Alexey, ты ещё здесь сидишь?

Вторник Апрель 26 2005 10:46, Alexey Boyko wrote to George Shepelev:

MZ>>>> Оно прекрасно, когда 3 или 5 прошивок. MZ>>>> А если 100 или 1000? AB>>> Какая разница? У файловой системы нет ограничения на 1000 AB>>> файлов. GS>> Пользователя не жалко?! Искать нужный файл среди 999 GS>> "неправильных"... AB> Так они же иерархически организованы. 10 проектов по 10 контроллеров AB> по 10 вариантов прошивки.

А сопровождать всю эту "иерархию" не замучаешься? И объяснять юзерам, в каком именно месте они "неправильную" иконку ткнули?

Куда проще всё это дело пронумеровать и снабдить каждое задание соответствующим шифром, который и набирают для программирования (а там уж путь хоть примитивные bat-ники работают):

ab05 || \ || номер прошивки (от 00 до 99 = 99 вариантов) | \ | тип контроллера (от 0 до z = 36 вариантов) \ номер проекта (от 0 до z = 36 вариантов)

Лично мне записать и набрать (или продиктовать) 4 символа куда проще, чем разбираться с кучей иерархически организованных иконок... Если использовать русские буквы - число "цифро-буквенных" вариантов теоретически увеличивается до 43 ;-)

Рекомендация при практической работе. Hе использовать буквы, которые могут быть неправильно интерпретированы, например: D G I l O Q V ё З й О щ Ъ Ы.

Георгий

Reply to
George Shepelev

MZ> MZ>>>> Оно прекрасно, когда 3 или 5 прошивок. MZ> MZ>>>> А если 100 или 1000? MZ> AB>>> Какая разница? У файловой системы нет ограничения на 1000 файлов. MZ> GS>> Пользователя не жалко?! Искать нужный файл среди 999 MZ> GS>> "неправильных"... MZ> MZ> AB> Так они же иерархически организованы. 10 проектов по 10 контроллеров MZ> AB> по MZ> AB> 10 вариантов прошивки. MZ> Hе все так просто. некоторые одинаковые платы идут в разные проекты. MZ> одинаковые прошивки могут зашиваться в разные кристалы с разными опциями MZ> (типа несколько модификаций одной платы). плюс еще вариант ремона или зипа, MZ> для изделий, в том числе снятых с производства....

Дык, напрашивается применение системы поддержки версий типа CVS, subversion и т.п.

А если еще нужно вносить изменения, то тем более.

Reply to
Eugene Markov

Hello Michael.

26 Apr 05 22:46, you wrote to me:

AB>> Как напишешь. MZ> Дело не в том чем делать поиск и замену. А дело в том, что не всегда MZ> оно возможно примитивным поиском и заменой.

Так я ж и говорю - как напишешь.

MZ> Можно создать таск окно в виде диалога, у которого нельзя менять MZ> размер. Потом даже если менять размер, то контролы сами по себе MZ> перемещаться не могут.

Кстати, окна с неизменяемым размером - mustdie.

AB>> Поэтому решай сам. Если тебе это написать за два дня - то ты бы AB>> уже написал. MZ> Дык мне всевремя утвержали что это не правильно и надо юзать батники

Hу, я просто подходил с позиции, что это может быть легче и быстрее.

Alexey

Reply to
Alexey Boyko

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.