Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Считывание и запись в разные файлы

Страниц (1): [1]
 

1. AdryV - 03 Июня, 2016 - 06:29:20 - перейти к сообщению
Здравствуйте, как в Киборе реализовать:
CODE:
if (fopen ("D:\pause.txt", "w")!=0)
{
for (n=0; n<14; n++)
{
fwrite (t[n]);
fwrite (ENDL);
}
fclose();
}

INITDIALOG
{
if (fopen ("D:\pause.txt", "r")!=0)
{
for (n=0; n<14; n++)
{
fread(t[n]);
}
fclose();
sendcontrol(EDIT_0, t[0]);
sendcontrol(EDIT_1, t[1]);
sendcontrol(EDIT_2, t[2]);
sendcontrol(EDIT_3, t[3]);
sendcontrol(EDIT_4, t[4]);
sendcontrol(EDIT_5, t[5]);
sendcontrol(EDIT_6, t[6]);
sendcontrol(EDIT_7, t[7]);
sendcontrol(EDIT_8, t[8]);
sendcontrol(EDIT_9, t[9]);
sendcontrol(EDIT_10, t[10]);
sendcontrol(EDIT_11, t[11]);
sendcontrol(EDIT_12, t[12]);
sendcontrol(EDIT_13, t[13]);
}
}


нужно что бы при выборе комбо 0 считывало 1-й файл и в него же и записывало, а при выборе комбо 1 считывало 2-й файл и в него же и записывало
также что бы после выбора комбо все едиты обновились в окне
не обязательно именно комбо можно и другими способами, но я так понял что INITDIALOG считывание и вставка в поля происходит только во время запуска...
2. Kibor - 03 Июня, 2016 - 07:29:29 - перейти к сообщению
Для интерактивного обновления надо юзать

Немодальные диалоговые окна
3. AdryV - 05 Июня, 2016 - 03:49:02 - перейти к сообщению
подскажите еще, как считывать и записывать научился, но так и не понял как сделать что бы оно считывало и записывало лишь при переключении КОМБО...
стоит комбо0 переключаю на комбо1 оно сохраняет комбо0 и считывает комбо1, и засыпает до переключения
4. AdryV - 05 Июня, 2016 - 06:39:18 - перейти к сообщению
 AdryV пишет:
стоит комбо0 переключаю на комбо1 оно сохраняет комбо0 и считывает комбо1, и засыпает до переключения

не то написал
стоит пункт0 переключаю на пункт1 оно сохраняет пункт0(в текстовый файл) и считывает пункт1(из текстового файла) , и засыпает до переключения

в общем вот кусок

CODE:
if (flag_combo0[0]==0)
{
if (fopen ("D:\pause0.txt", "r")!=0)
{
for(n=0; n<2; n++)
{
fread(text_edit0[n]);
}
fclose();
}
}

if (flag_combo0[0]==1)
{
if (fopen ("D:\pause1.txt", "r")!=0)
{
for(n=0; n<2; n++)
{
fread(text_edit0[n]);
}
fclose();
}
}

(Добавление)
в итоге пока что реализовал так, думаю не правильно
ах да проверка флага комбо стоит в таймере
CODE:

int proverka=0;

if (flag_combo0[0]==0)
{
if (proverka==1)
{
if (fopen ("D:\pause0.txt", "r")!=0)
{
for(n=0; n<2; n++)
{
fread(text_edit0[n]);
}
fclose();
}
}
proverka=2;
}

if (flag_combo0[0]==1)
{
if (proverka==2)
{
if (fopen ("D:\pause1.txt", "r")!=0)
{
for(n=0; n<2; n++)
{
fread(text_edit0[n]);
}
fclose();
}
}
proverka=1;
}

но у меня список состоит из 6 пунктов...
5. AdryV - 05 Июня, 2016 - 09:08:25 - перейти к сообщению
далее решил упростить код но зашел в тупик

CODE:
for(n3=0; n3<2; n3++)
{
if (flag_combo0[0]==n3)
{
if (fopen (text_combo0[0][n3], "r")!=0)
{
for(n=0; n<2; n++)
{
fread(text_edit0[n]);
}
fclose();
}
}
}

открывает файлы взяв имя из поля названия строки комбо....
но как реализовать что бы не постоянно считывало а лишь при переключении не понял
6. AdryV - 07 Июня, 2016 - 03:48:07 - перейти к сообщению
так тяжело подсказать или хотя бы направить в нужном направлении... Огорчение
7. Kibor - 07 Июня, 2016 - 04:49:27 - перейти к сообщению
скайп в лс
8. AdryV - 08 Июня, 2016 - 23:34:37 - перейти к сообщению
подскажите какой из этих вариантов более правильный?

1-й код (Отобразить)

или
2-й код (Отобразить)

на мой взгляд первый вариант лучше... мне нужно если не нашло открываемый файл что бы обнулялись поля и создавался файл
(Добавление)
две ошибки нашел в первом коде и пришел к выводу что он более правильный

CODE:
//считывание пауз из списка файлов
for(n1=0; n1<7; n1++) //перебираем список
{
if (flag_combo0[0]==n1)
{
if (flag_combo!=flag_combo0[0])//если флаг не равен прежнему выбору то выполнять
{
flag_combo=flag_combo0[0];
if (fopen (text_combo0[0][n1], "r")!=0)//открываем выбранный файл
{
for(n=0; n<14; n++) //перебираем строки
{
fread(text_edit0[n]);//считываем строки в поля
fread(flag_check0[n]);//считываем галки
}
fclose();//закрываем файл
}
//если не нашли открываемый файл
else {sozdat=1; goto soz;}
}
}
}

if (flag_button0[0]==1)//кнопка сохранить если нажата то выполнять сохранение
{

soz: for(n1=0; n1<7; n1++) //перебираем какой пункт активен
{
if (flag_combo0[0]==n1)
{
if (fopen (text_combo0[0][n1], "w")!=0) //открываем для записи файл
{
for (n=0; n<14; n++)
{
if (sozdat==1)//если создать = 1 то выполняем обнуление полей и галок
{
text_edit0[n]="0";//обнуление поля
flag_check0[n]=0;//обнуление галки
}
fwrite(text_edit0[n]);//поле ввода
fwrite(ENDL);//переход строки
fwrite(flag_check0[n]);//записываем галки
fwrite(ENDL);//переход строки
}
fclose();//закрываем открытый файл
sozdat=0;//создать =0, отключаем обнуление
}
}
}
flag_button0[0]=0; //отпускаем кнопку
}

Powered by ExBB FM 1.0 Final