DoctorG Опубликовано 7 февраля, 2009 Жалоба Поделиться Опубликовано 7 февраля, 2009 Вобщем при изучении возникли некоторые вопросы. Допустим не совсем понятно почему не работает следующий код. Я в обработчике события button1_Click пишу следующее private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {float e,e1; int k=0; e=1.0; do { e=e/2.0; e1=e+1.0; k++; } while (e1>1.0); Form1::label3->Text=FloatToStF(e1,ffGeneral,7,2); Form1::label4->Text=FloatToStF(k,ffGeneral,7,2);; }}; На что получаю целый ворох ошибок Ошибка 8 error C3861: FloatToStF: идентификатор не найден Ошибка 3 error C2676: бинарный '+': 'System::EventArgs ^' не определяет этот оператор или преобразование к типу приемлемо к встроенному оператору (это вобще что такое? плюс не воспринимает.) Ошибка 1 error C2676: бинарный '/': 'System::EventArgs ^' не определяет этот оператор или преобразование к типу приемлемо к встроенному оператору (и деление тоже) Далее мне необходимо прочитать некий фаил и вывести его в текст бокс. Делаю так String^ fileName = "1.txt";StreamReader^ din = File::OpenText(fileName);String^ str; int count = 0; while ((str = din->ReadLine()) != nullptr) { count++; Zam::textBox1->Text=str; } Работает. Но читает и выводит только последнюю строку. а надо весь текстовый фаил. Потом тудаже нужно записать. Тут вобще трабл. Пробывал по разному записывать. Ничего не получилось. =( Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 7 февраля, 2009 Жалоба Поделиться Опубликовано 7 февраля, 2009 (изменено) DoctorG: Компилятор же написал, что функция FloatToStF ему неизвестна. Скорее всего, нужна была функция FloatToStrF. Относительно строки - из файла читаются строки и помещаются в одну и ту же переменную, каждый раз замещая предыдущую строку. В итоге в переменной будет последняя считанная строка. Надо не полностью заменять каждый раз строку в Text, а добавлять к старому содержимому Text очередную считанную из файла строку. Или, эффективнее, сначала собрать все строки из файла в одну и потом уже ее вывести. Изменено 7 февраля, 2009 пользователем Тролль Ссылка на комментарий Поделиться на другие сайты Поделиться
Lion HC Опубликовано 7 февраля, 2009 Жалоба Поделиться Опубликовано 7 февраля, 2009 Скажите пожалуйста, что значит симовол ^ В Борланде я такого еще не встречал :blush2: Ссылка на комментарий Поделиться на другие сайты Поделиться
DoctorG Опубликовано 8 февраля, 2009 Автор Жалоба Поделиться Опубликовано 8 февраля, 2009 Не ну хорошо. А что делать с нежеланием компилятора, складывать, делить и умножать? Ссылка на комментарий Поделиться на другие сайты Поделиться
DoctorG Опубликовано 8 февраля, 2009 Автор Жалоба Поделиться Опубликовано 8 февраля, 2009 Вобщем все мои проблемы решились вдумчивым чтением справки =) ----- Еще вопрос такой. Я когда сохраняю фаил. Хочу чтобы к каждой строке цеплялась текущая системная дата. Как ее вытащить? Ссылка на комментарий Поделиться на другие сайты Поделиться
DoctorG Опубликовано 8 февраля, 2009 Автор Жалоба Поделиться Опубликовано 8 февраля, 2009 (изменено) И еще. есть некая переменная int I; Как привести ее к String ^p; ? Чтобы была возможность информацию из нее вставить в textbox; C переводом форматов справился. Осталось дата. Изменено 8 февраля, 2009 пользователем DoctorG Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 9 февраля, 2009 Жалоба Поделиться Опубликовано 9 февраля, 2009 DoctorG: C переводом форматов справился. Осталось дата.#include <time.h>... char s[12]; cout<<_strdate(s); Дата в строке будет в несколько непривычном формате (американском), надеюсь, переставить части строки местами будет нетрудно. Lion HC: что значит симовол ^Операция побитового исключающего "ИЛИ". Каким образом ее использует в своей программеDoctorG, знает только он сам ;). Ссылка на комментарий Поделиться на другие сайты Поделиться
DoctorG Опубликовано 9 февраля, 2009 Автор Жалоба Поделиться Опубликовано 9 февраля, 2009 Троль. Спасибо. Ссылка на комментарий Поделиться на другие сайты Поделиться
DoctorG Опубликовано 11 февраля, 2009 Автор Жалоба Поделиться Опубликовано 11 февраля, 2009 Еще один вопрос. допустим есть некое поле, типа textBox мне нужно чтобы в него была возможность вводить лишь цифры, но не буквы. я так понимаю это нужно сделать с помощью события KeyPress а что писать в обработчике события? Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 11 февраля, 2009 Жалоба Поделиться Опубликовано 11 февраля, 2009 Проще всего проверяй введенный текст и если там что-то неподходящее, заставляй ввести его заново. Ведь буквы можно ввести и не с клавы, а, например, вставкой из буфера. Ссылка на комментарий Поделиться на другие сайты Поделиться
DoctorG Опубликовано 11 февраля, 2009 Автор Жалоба Поделиться Опубликовано 11 февраля, 2009 В каком событии? И как? Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 11 февраля, 2009 Жалоба Поделиться Опубликовано 11 февраля, 2009 Да ни в каком событии... Ввели строку - прежде чем передать ее дальше, прсто в тексте программы проверь, нет ли в ней букв и, если есть, выдай на экран "Введите снова: допустимы только цифры". Если уж хочется контролировать именно ввод, то проверка во время ввода описана, например, тут (ближе к концу страницы), правда, на C#, но это, видимо, нетрудно изменить и для C++. Ссылка на комментарий Поделиться на другие сайты Поделиться
Shadow TH Опубликовано 12 февраля, 2009 Жалоба Поделиться Опубликовано 12 февраля, 2009 Скажите пожалуйста, что значит симовол ^ В Борланде я такого еще не встречал :g: Не знаю почему, но в .net таким образом обозначаются указатели. Ссылка на комментарий Поделиться на другие сайты Поделиться
DoctorG Опубликовано 12 февраля, 2009 Автор Жалоба Поделиться Опубликовано 12 февраля, 2009 Shadow TH именно так. Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 12 февраля, 2009 Жалоба Поделиться Опубликовано 12 февраля, 2009 Так обозначались указатели в Pascal, потом в Delphi. В C++ мне такого пока не попадалось, хотя не исключено, конечно, что такое уже существует и просто до меня не дошло. Borland, активно продвигавшая Delphi и даже свой C++ Builder строившая с большой оглядкой на Delphi, вполне могла бы такое учудить. Но Microsoft... :) хотя чем черт не шутит Ссылка на комментарий Поделиться на другие сайты Поделиться
Lion HC Опубликовано 26 мая, 2009 Жалоба Поделиться Опубликовано 26 мая, 2009 Microsoft не отказалась от *. Значение в звездочки прежнее. Но при програмировании под .NET, появилась необходимость ввести новий спец.символ... ...обратите внимание на необходимость использования ключевого слова gcnew вместо new при создании объекта .NET, а также на то, что gcnew возвращает дескриптор (^), а не указатель (*): StreamWriter^ sw = gcnew StreamWriter(fileName); П.С.: ето я вчера поставил себе русскую версию Microsoft Visual Studio Team System 2008 Architecture Edition с русской справкой. Пока очень доволен :) Ссылка на комментарий Поделиться на другие сайты Поделиться
Shadow TH Опубликовано 16 июня, 2009 Жалоба Поделиться Опубликовано 16 июня, 2009 (изменено) Есть вопрос. Пишу программу, которая, грубо говоря, считывает байты из одного файла и записывает их в новый (т.е. сначала считывается байт из файла, затем сразу же идёт его запись в новый файл и так далее). Однако, когда размер исходного файла достаточно велик, программа при выполнении операций перестаёт отвечать, она начинает загружать процессор на 50-60%. Соответственно, различные индикаторы прогресса в программе тоже застывают на месте, всё окно программы как бы заморожено, хотя сам процесс считывания/записи идёт (это заметно из того, что размер нового файла с каждым разом увеличивается). Как только процесс чтения/записи завершается, программа снова начинает отвечать и процессор перестаёт быть загруженным. Почему так происходит? P.S: Должен заметить, что это было не только в VB.NET, но и раньше, когда писал подобные приложения в VB 6.0. Изменено 16 июня, 2009 пользователем Shadow TH Ссылка на комментарий Поделиться на другие сайты Поделиться
Lion HC Опубликовано 16 июня, 2009 Жалоба Поделиться Опубликовано 16 июня, 2009 Вы считываете/записываете каждый раз только по 1 байту? Какой примерно размер файла? Ссылка на комментарий Поделиться на другие сайты Поделиться
Shadow TH Опубликовано 16 июня, 2009 Жалоба Поделиться Опубликовано 16 июня, 2009 (изменено) Вы считываете/записываете каждый раз только по 1 байту? Какой примерно размер файла? Ну, допустим, файл размером 10 МБ. Я открываю файл для чтения и ещё один файл для записи. Затем в цикле указываю нижний предел = 1, и верхний предел в зависимости от того, сколько байтов мне нужно сохранить в новом файле. Уже в самом цикле находятся операторы чтения/записи. Изменено 16 июня, 2009 пользователем Shadow TH Ссылка на комментарий Поделиться на другие сайты Поделиться
Lion HC Опубликовано 16 июня, 2009 Жалоба Поделиться Опубликовано 16 июня, 2009 В том то и проблема... Очень много итерацый и в каждой выполняется и чтение и запись... Ето и ест много ресурсов. Попробуйте переписывать пакетами по несколько байт. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти