fopen работает через раз (+)
у меня на форме 2 можно эти файл просуммировать и результат записать в новый файл - суммиарный спектр. Этот новый файл закрывается для записи и здесь конец функции, закрывается форма 2.
Так вот, если теперь открывать этот новый файл из формы 1, то
in = fopen( path, "r" );
ссылка in равна NULL, хотя файл реально существует.
Если перезагрузить программу, то все работает.
Так же не понятно, то, что если суммировать другие файлы (из другого каталога), то все ОК с первого раза (без перезагрузки).
файлы открываю читаю/записываю при помощи <stdio.h>
FILE *in;
float R[N];
...
in = fopen( Edit1->Text.c_str(), "w" );
fprintf( in,"%f", R[N] );
а вопрос вот какой: это и есть глюкавость Builder'a?
Антон
в каталоге есть несколько файлов - впектры 4096 строк, в каждой строке число.
у меня на форме 2 можно эти файл просуммировать и результат записать в новый файл - суммиарный спектр. Этот новый файл закрывается для записи и здесь конец функции, закрывается форма 2.
Так вот, если теперь открывать этот новый файл из формы 1, то
in = fopen( path, "r" );
ссылка in равна NULL, хотя файл реально существует.
Если перезагрузить программу, то все работает.
Так же не понятно, то, что если суммировать другие файлы (из другого каталога), то все ОК с первого раза (без перезагрузки).
файлы открываю читаю/записываю при помощи <stdio.h>
FILE *in;
float R[N];
...
in = fopen( Edit1->Text.c_str(), "w" );
fprintf( in,"%f", R[N] );
а вопрос вот какой: это и есть глюкавость Builder'a?
Антон
Это не глюкавость Buildera а корявость вопроса. Где в форме1 открывается файл? Если при создании формы, то там и не может ничего окрыться. А очень похоже на то.
Это не глюкавость Buildera а корявость вопроса. Где в форме1 открывается файл? Если при создании формы, то там и не может ничего окрыться. А очень похоже на то.
создается файл при нажатии кнопки на форме2. После этого созданный файл открывается при нажатии кнопки на форме1.
Только иногда это работает, а иногда нет. Все это я описал выше.
создается файл при нажатии кнопки на форме2. После этого созданный файл открывается при нажатии кнопки на форме1.
Только иногда это работает, а иногда нет. Все это я описал выше.
А на форме2, созданный файл закрывается?. Поскольку эффект проявляется именно после выхода из проги, попробуем проанализировать ситуацию.
Почему может не открываться файл?
1. Его просто нет. (но утверждается, что он есть)
2. Если файл создается через create file, то даже если он есть для проги его все равно, что нет, пока файл не будет закрыт.
3. NULL NULL-ом, а ошибка открытия какя. Я бы полюбопытсвовал. А то гадание на кофейной гуще получается.
А на форме2, созданный файл закрывается?. Поскольку эффект проявляется именно после выхода из проги, попробуем проанализировать ситуацию.
Почему может не открываться файл?
1. Его просто нет. (но утверждается, что он есть)
2. Если файл создается через create file, то даже если он есть для проги его все равно, что нет, пока файл не будет закрыт.
3. NULL NULL-ом, а ошибка открытия какя. Я бы полюбопытсвовал. А то гадание на кофейной гуще получается.
БЛИН! ошибся я.
ссылка равна NULL, когда я хочу файл открыть для записи
#define outDir "c:\\_MyTemp\\"
tmp = outDir;
tmp = tmp + "11.res";
out1 = fopen( tmp.c_str(),"w" );
файлы закрываются fclose( ... );
единственное что - это ссылки называются одинаково in1 в форме1 и in1 в форме2 для чтения файла и out для записи.
БЛИН! ошибся я.
ссылка равна NULL, когда я хочу файл открыть для записи
#define outDir "c:\\_MyTemp\\"
tmp = outDir;
tmp = tmp + "11.res";
out1 = fopen( tmp.c_str(),"w" );
файлы закрываются fclose( ... );
единственное что - это ссылки называются одинаково in1 в форме1 и in1 в форме2 для чтения файла и out для записи.
вот еще что обнаружил. Если я суммирую много (43) файлов, то есть эта фигня, а если мало (9 штук), то тогда все нормально out1 не равна NULL
на форме2 при суммировании я не все файлы закрыл. Теперь все работает :)!