digitalmars.D.learn - Writing to file problem (Kernelbase exeption)
- Konrad (17/17) Jun 05 2014 Hi guys!
- Kagamin (2/2) Jun 05 2014 Try to reduce it: remove code from the program piece by piece
- Konrad (10/10) Jun 05 2014 Well, there is a problem with
- Stefan Koch (3/3) Jun 05 2014 config_file needs to be the string
- Konrad (24/24) Jun 05 2014 Right now I have:
- =?UTF-8?B?QWxpIMOHZWhyZWxp?= (6/17) Jun 05 2014 That is not necessary, a simple concatenation would be the equivalent:
- Konrad (9/9) Jun 05 2014 Ok, I have rebuilded whole solution in MSVS (I'm using VisualD
Hi guys! I have problem with writing to a file. My function looks like this: [code] int game_change_config(string _player_spritesheet, string _flame_spritesheet) { string info = _player_spritesheet~"\n"~_flame_spritesheet; auto config_file = File("Data/config.ini"); config_file.write(info); return 0; }[/code] Everythings compile just fine, but sadly I'm getting Kernelbase.dll exception while function is running. Could you help me that problem? :) Best regards, Ironus PS. I'm sorry for my poor english.
Jun 05 2014
Try to reduce it: remove code from the program piece by piece until you find a fragment, which causes the problem.
Jun 05 2014
Well, there is a problem with config_file.write(info); but when I'm changing it to write("Data/config.ini", info); I'm getting an error of conflict between std.stdio.write and std.file.write. That's why I was using the first line. Is there any way to solve this problem? Best regards, Ironus
Jun 05 2014
config_file needs to be the string not a struct File .
Jun 05 2014
Right now I have: import file = std.file; import std.stdio; int game_change_config(string _player_spritesheet, string _flame_spritesheet) { string info = _player_spritesheet~"\n"~_flame_spritesheet; char[] info_table; for(int i = 0; i < info.length; i++) { info_table.length++; info_table[info_table.length - 1] = info[i]; } file.write("Data/config.ini", info_table); return 0; } I'm changing my string into dynamic char array and I'm using "Data/config.ini" as a string, just as Stefan Koch suggested. Everything compiles and my function doesn't return any errors while working, but it's not changing my file content (it's still as same as before running a function). Any solutions? I'm starting to get pretty angry about that problem (more complicated stuff is working fine and that one part can't)... Best regards, Ironus
Jun 05 2014
On 06/05/2014 01:39 PM, Konrad wrote:> Right now I have:import file = std.file; import std.stdio; int game_change_config(string _player_spritesheet, string _flame_spritesheet) { string info = _player_spritesheet~"\n"~_flame_spritesheet; char[] info_table; for(int i = 0; i < info.length; i++) { info_table.length++; info_table[info_table.length - 1] = info[i];That is not necessary, a simple concatenation would be the equivalent: info_table ~= info[i]; // instead of the previous two lines} file.write("Data/config.ini", info_table);Random guess: Try with full path and see whether that helps. How about file access rights? Can you write to that file by other means? Ali
Jun 05 2014
Ok, I have rebuilded whole solution in MSVS (I'm using VisualD plugin) and everything started to work with my previously pasted code. Ali, thank you for advise with concatenation, I haven't thought about that. Also thank you to all of you, guys, all that you wrote was very helpfull. Best regards, Ironus
Jun 05 2014