Thread overview | |||||||||
---|---|---|---|---|---|---|---|---|---|
|
June 05, 2014 Writing to file problem (Kernelbase exeption) | ||||
---|---|---|---|---|
| ||||
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. |
June 05, 2014 Re: Writing to file problem (Kernelbase exeption) | ||||
---|---|---|---|---|
| ||||
Posted in reply to Konrad | Try to reduce it: remove code from the program piece by piece until you find a fragment, which causes the problem. |
June 05, 2014 Re: Writing to file problem (Kernelbase exeption) | ||||
---|---|---|---|---|
| ||||
Posted in reply to Kagamin | Well, there is a problem with config_file.write(info); but when I'm changing it to write("Data/config.ini", info); (as it states in http://dlang.org/phobos/std_file.html#.write) 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 |
June 05, 2014 Re: Writing to file problem (Kernelbase exeption) | ||||
---|---|---|---|---|
| ||||
Posted in reply to Konrad | config_file needs to be the string not a struct File . |
June 05, 2014 Re: Writing to file problem (Kernelbase exeption) | ||||
---|---|---|---|---|
| ||||
Posted in reply to Stefan Koch | 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 |
June 05, 2014 Re: Writing to file problem (Kernelbase exeption) | ||||
---|---|---|---|---|
| ||||
Posted in reply to Konrad | 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 |
June 05, 2014 Re: Writing to file problem (Kernelbase exeption) | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ali Çehreli | 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 |
Copyright © 1999-2021 by the D Language Foundation