Привет! Вот, из-за кризиса, вляпался в это амно -- .Net, сорта: MSVS 2008, lang: VB.Net, target framework .Net 2.0. Как говорится, сколько Windows программист не крутись, а точка нет нет да наступит. :(
Посему возникают пара вопросов.
1. Можно-ли среду настроить так чтоб все элементы формы Protected Friend были по умолчанию? (Сейчас они Friend)
2. Как заставить этот гацкий StackTrace выводить сырую строку трассировки, чтоб её потом можно было отформатировать нормально? Сейчас пишется перед каждым названием функции "в " что естественно вызывает вопрос: а как будет в системах с другим языком? Или есть другой метод/способ получения трассировки?
3. Можно написать свой класс формирования лога и встроить его в My.Application.Log? Я так понял его надо от TraceListener наследовать, кто-нибудь этим занимался? В конечном итоге можно настроить проект на использование этого самописного Log, или только в коде прописать можно?
4. В священном писании сказано, что String — это строка константных символов. При этом инструкция Mid осталась. Так значит получается:
Mid(oldStr, 1, newPartStr.Length()) = newPartStr
'теперь тоже что и
oldStr = newPartStr & oldStr.Substring(newPartStr.Length())
Порылся, нашёл Text.StringBuilder, думал вот ОНО. Но оказалось что ничего полезного этот класс не умеет: ни ToUCase, ни ToLCase, ни банального Mid у него нет. :(
5. Можно заставить проект писать файл с настройками с расширением xml, а не confg?
Заранее спасибо. Простите за резкость, это я не вам лично.
Наука изощряет ум; ученье вострит память.
(c) Козьма Прутков
Здравствуйте, ZAMUNDA, Вы писали:
ZAM>Привет! Вот, из-за кризиса, вляпался в это амно -- .Net, сорта: MSVS 2008, lang: VB.Net, target framework .Net 2.0. Как говорится, сколько Windows программист не крутись, а точка нет нет да наступит.
Да, вот из-за кризиса к нам всякого понабежало.
ZAM>1. Можно-ли среду настроить так чтоб все элементы формы Protected Friend были по умолчанию? (Сейчас они Friend)
Можно.
ZAM>2. Как заставить этот гацкий StackTrace выводить сырую строку трассировки, чтоб её потом можно было отформатировать нормально? Сейчас пишется перед каждым названием функции "в " что естественно вызывает вопрос: а как будет в системах с другим языком? Или есть другой метод/способ получения трассировки?
Все сообщения выводятся на языке установленного фреймворка.
ZAM>3. Можно написать свой класс формирования лога и встроить его в My.Application.Log? Я так понял его надо от TraceListener наследовать, кто-нибудь этим занимался? В конечном итоге можно настроить проект на использование этого самописного Log, или только в коде прописать можно?
Наверняка можно, в документации всё написано.
ZAM>4. В священном писании сказано, что String — это строка константных символов. При этом инструкция Mid осталась. Так значит получается:
ZAM>Mid(oldStr, 1, newPartStr.Length()) = newPartStr
ZAM>'теперь тоже что и
ZAM>oldStr = newPartStr & oldStr.Substring(newPartStr.Length())
ZAM>
Неверно прочитали документацию. String — это неизменяемая строка. Любые операции с ней порождают новую строку.
ZAM>Порылся, нашёл Text.StringBuilder, думал вот ОНО. Но оказалось что ничего полезного этот класс не умеет: ни ToUCase, ни ToLCase, ни банального Mid у него нет.
StringBuilder предназначен для формирования сложных строк. Зачем ему Mid и прочее — не ясно.
ZAM>5. Можно заставить проект писать файл с настройками с расширением xml, а не confg?
Можно хоть в *.exe. Главное — прочесть документацию.
Здравствуйте, ZAMUNDA, Вы писали:
ZAM>3. Можно написать свой класс формирования лога и встроить его в My.Application.Log? Я так понял его надо от TraceListener наследовать, кто-нибудь этим занимался? В конечном итоге можно настроить проект на использование этого самописного Log, или только в коде прописать можно?
Log4Net
ZAM>4. В священном писании сказано, что String — это строка константных символов. При этом инструкция Mid осталась. Так значит получается:
ZAM>Mid(oldStr, 1, newPartStr.Length()) = newPartStr
ZAM>'теперь тоже что и
ZAM>oldStr = newPartStr & oldStr.Substring(newPartStr.Length())
ZAM>
ZAM>Порылся, нашёл Text.StringBuilder, думал вот ОНО. Но оказалось что ничего полезного этот класс не умеет: ни ToUCase, ни ToLCase, ни банального Mid у него нет.
Строка в .net — не изменяемый объект. Все методы "изменяющие" строку — порождают новую строку. Изменяемая строка — StringBuilder. У строки есть много полезных методов — ToLower, ToUpper, Trim, Split, Join, Format и т.д.
ZAM>5. Можно заставить проект писать файл с настройками с расширением xml, а не confg?
Примерно так:
using System;
using System.Configuration;
namespace ConsoleApplication53
{
class Program
{
static void Main(string[] args)
{
var map = new ExeConfigurationFileMap();
map.ExeConfigFilename = "qwe.xml";
var config = ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None);
var value = config.AppSettings.Settings["test"];
if (value != null)
Console.WriteLine(value.Value);
Console.ReadLine();
}
}
}
Здравствуйте, anton_t, Вы писали:
ZAM>>3. Можно написать свой класс формирования лога и встроить его в My.Application.Log? Я так понял его надо от TraceListener наследовать, кто-нибудь этим занимался? В конечном итоге можно настроить проект на использование этого самописного Log, или только в коде прописать можно? _>Log4Net
Спасибо! Не то... мне нужна вещь идущая в противоположную сторону... так сказать.
_>Строка в .net — не изменяемый объект. Все методы "изменяющие" строку — порождают новую строку. Изменяемая строка — StringBuilder. У строки есть много полезных методов — ToLower, ToUpper, Trim, Split, Join, Format и т.д.
Садись! Пять!
ZAM>>5. Можно заставить проект писать файл с настройками с расширением xml, а не confg? _>Примерно так:
спасибо _>Но я бы не советовал подобным увлекаться.
Почему? И чем конкретно не надо?
Наука изощряет ум; ученье вострит память.
(c) Козьма Прутков
Здравствуйте, Aen Sidhe, Вы писали:
AS>Да, вот из-за кризиса к нам всякого понабежало.
И не говори... второй день на валидоле и алказельцере. Буду теперь как школяр тут шоркаться, а вы, как старшеклассники, меня опускать RTFM'ами и погуглями всякими.
ZAM>>1. Можно-ли среду настроить так чтоб все элементы формы Protected Friend были по умолчанию? (Сейчас они Friend) AS>Можно.
Как? Хоть менюху какую нажать скажи, о великий! ;-)
AS>Все сообщения выводятся на языке установленного фреймворка.
Оппаньки... А убрать это никак? Ну или узнать что там в качестве разделителя?
AS>Наверняка можно, в документации всё написано.
Ну вот... началось...
AS>Неверно прочитали документацию. String — это неизменяемая строка. Любые операции с ней порождают новую строку.
Я хотел сказать:
4. В священном писании сказано, что String — это массив константных символов. При этом инструкция Mid осталась, и если раньше она просто перезаписывала значения символов, то теперь создаёт новую строку из двух входных. Т.е. становится аналогична конкатенации.
AS>StringBuilder предназначен для формирования сложных строк. Зачем ему Mid и прочее — не ясно.
Т.е. или не плакать из-за того что выделяются временные строки или делать через StringBuilder.Chars?
ZAM>>5. Можно заставить проект писать файл с настройками с расширением xml, а не confg? AS>Можно хоть в *.exe. Главное — прочесть документацию.
Ну вот опять... начинаю привыкать.
Простите за сарказм, это я для красного словца только.
Наука изощряет ум; ученье вострит память.
(c) Козьма Прутков
Здравствуйте, Kore Sar, Вы писали:
KS>Много глупых вопросов.
Ну так ответьте хотябы на умные, а уж потом критикуйте за глупые.
И вообще, что позорного в вопросах, даже в глупых? В конце концов, если вопрос глупый, то вполне можно ответить в стиле "покопай там-то"...
KS>Попробуйте почитать литературу по дотнету. Гораздо быстрее войдёте в курс дела, чем вот так вот по форумам позориться.
Читаю... и читаю... и читаю... и пробую... и разбираюсь в samples...
подустал наверное! Да и некогда читать, к сожалению — делать надо.
1. пока не нашёл ответа, как впрочем и не получил. В Tools/Options — ничего подходящего. Кроме выделения всех элементов на форме и проставления им этого свойства — ничего путного не нашёл.
2. видимо ответ отрицательный... увы и ах. Или многоуважаемый all — считает его глупым, потому и не удостаивает ответом?
3. глупый. разобрался.
4. нет ответа.
5. есть ответ. спасибо.
Наука изощряет ум; ученье вострит память.
(c) Козьма Прутков
Здравствуйте, Aen Sidhe, Вы писали:
AS>Все сообщения выводятся на языке установленного фреймворка.
Видимо по этому вопросу (2) надо копать в сторону System.Diagnostics.StackTrace. Если неправ, скажи...
Наука изощряет ум; ученье вострит память.
(c) Козьма Прутков
Я бы посоветовал более систематизировано подойти к решению проблемы, чем пытаться в слепую что-то решить, при этом получать приличную порцию крайне неприятной, но тем не менее объективной критики (в стиле RTFM). Это приведёт к тому, что даже со значительными временными затратами вы таки решите поставленную задачу. Плюс узнаете много нового, полезного и интересного .
Начните с ПОСЛЕДОВАТЕЛЬНОГО изучения платформы .NET и инструментов. Того же Троелсена почитать для начала. Не думайте, что имея хорошие знания по VB у вас получится быстро, исключительно полистав сэмплы, что-то понять. С таким подходом можно только формошлёпить на уровне школьной самодеятельности.
Здравствуйте, SaZ, Вы писали:
SaZ>Я бы посоветовал более систематизировано подойти к решению проблемы, чем пытаться в слепую что-то решить, при этом получать приличную порцию крайне неприятной, но тем не менее объективной критики (в стиле RTFM).
Стараюсь стараюсь...
SaZ>Это приведёт к тому, что даже со значительными временными затратами вы таки решите поставленную задачу. Плюс узнаете много нового, полезного и интересного .
Нет у меня времени, поймите вы, нету!
SaZ>Начните с ПОСЛЕДОВАТЕЛЬНОГО изучения платформы .NET и инструментов. Того же Троелсена почитать для начала. Не думайте, что имея хорошие знания по VB у вас получится быстро, исключительно полистав сэмплы, что-то понять.
Прочёл: Справка (для пользователей Visual Basic 6.0)
Прочёл: Сведения об изменениях в языке (для пользователей Visual Basic 6.0)
Взглянул на: Элементы управления Windows Forms (для пользователей Visual Basic 6.0)
Сейчас читаю: "Отображение данных на форме в приложениях Windows"
Что пропустил?
Простой вопрос задал про оптимизацию строковых операций — все молчат...
SaZ>С таким подходом можно только формошлёпить на уровне школьной самодеятельности.
IMHO, большая часть прикладных разработчиков именно такой уровень и имеют...
Я много работал с Borland C++ Builder — и вижу много аналогий с тем что в формошлёпстве сделано было там и сделано сейчас в MS VS 2008. А кстати там я формошлёпил немало.
Наука изощряет ум; ученье вострит память.
(c) Козьма Прутков
Здравствуйте, ZAMUNDA, Вы писали:
SaZ>>Начните с ПОСЛЕДОВАТЕЛЬНОГО изучения платформы .NET и инструментов. Того же Троелсена почитать для начала. Не думайте, что имея хорошие знания по VB у вас получится быстро, исключительно полистав сэмплы, что-то понять. ZAM>Прочёл: Справка (для пользователей Visual Basic 6.0) ZAM>Прочёл: Сведения об изменениях в языке (для пользователей Visual Basic 6.0) ZAM>Взглянул на: Элементы управления Windows Forms (для пользователей Visual Basic 6.0) ZAM>Сейчас читаю: "Отображение данных на форме в приложениях Windows"
Вы прочли абсолютно ненужные книги для работы в .NET. С чем вас и поздравляю. VB и VB.Net — очень разные языки. Как С первых версий и С++ от МС в 2005 студии. Без обратной совместимости.
Здравствуйте, ZAMUNDA, Вы писали:
SaZ>>Это приведёт к тому, что даже со значительными временными затратами вы таки решите поставленную задачу. Плюс узнаете много нового, полезного и интересного . ZAM>Нет у меня времени, поймите вы, нету!
Нет времени / стремления — платите деньги тем, у кого оно есть
ZAM>Простой вопрос задал про оптимизацию строковых операций — все молчат...
Дык вроде не молчат... RTM уже писали.
SaZ>>С таким подходом можно только формошлёпить на уровне школьной самодеятельности. ZAM>IMHO, большая часть прикладных разработчиков именно такой уровень и имеют... ZAM>Я много работал с Borland C++ Builder — и вижу много аналогий с тем что в формошлёпстве сделано было там и сделано сейчас в MS VS 2008. А кстати там я формошлёпил немало.
Вы ошибаетесь в обоих случаях.
А общего в цпп билдере и мсвс винформс — это лишь внешнее сходство визуальных редакторов, ну никак не языков/технологий. Впрочем по-другому что-то придумать достаточно сложно.
Здравствуйте, ZAMUNDA, Вы писали:
ZAM>Простой вопрос задал про оптимизацию строковых операций — все молчат...
Почитай, к примеру, Джефри Рихтера. Там все хорошо разжевано.
Выделение памяти в .Net крайне дешевая операция. Что ты собрался оптимизировать? Там и так все оптимально: String и StringBuilder.
Здравствуйте, SaZ, Вы писали:
SaZ>Нет времени / стремления — платите деньги тем, у кого оно есть
Если б мне за каждый совет по VB6 платили, даж с учётом неправильных ответов, я б тут не спрашивал фигню всякую (с точки зрения проффесионалов), а на гаваях где-нить ща коктейльчик квасил.
ZAM>>Простой вопрос задал про оптимизацию строковых операций — все молчат... SaZ>Дык вроде не молчат... RTM уже писали.
Могли б просто написать НЕЛЬЗЯ.
ZAM>>IMHO, большая часть прикладных разработчиков именно такой уровень и имеют... SaZ>Вы ошибаетесь в обоих случаях.
Вот по уровню разработчиков -- ну соглашусь, что больше половины, а не большая часть. Есть те, что красиво говорят, но не более того.
ZAM>>Я много работал с Borland C++ Builder — и вижу много аналогий с тем что в формошлёпстве сделано было там и сделано сейчас в MS VS 2008. А кстати там я формошлёпил немало. SaZ>А общего в цпп билдере и мсвс винформс — это лишь внешнее сходство визуальных редакторов, ну никак не языков/технологий. Впрочем по-другому что-то придумать достаточно сложно.
Вот уж не скажите. Философия одна, просто способ реализации логики передачи событий другая. Языки BCB C++ и VB.Net естественно разные, но в VB никаких новых концепций не применено. Просто (что естественно для языка высокого уровня) большая часть встроена в язык: те же делегаты, сборка мусора. Что-то особо сложное убрано или урезано: множественное наследование, управление памятью (хотя мб есть, но я пока не увидел), соглашения вызова (тож не уверен).
Наука изощряет ум; ученье вострит память.
(c) Козьма Прутков