yes...and no, too many objects (IE individual floor tiles) would slow your world down a lot, but you can do things like that, imo the better way would be to make a simple world editor then rather than store the data as strings in a text file have the editor save and load the file format as numeric data, no long winded conversions etc, but many people find it easier with saved string data, whatever rocks your boat

, all you need to do is to make sure that the file format you use is robust, that is, it only reads the data it requires and doesn`t overun and get out of sync, for example you use fixed size chunks of data, or you have a 1 or 2 byte header for each chunk that says how large it is, the details are down to you realy.
I constantly make small editors for games, an editor does not have to be rocket science with drop down menus and graphical object selection, many of mine have simple key controls (echo`d to the screen) and save or load the current file when you press F11 or F12, just that simple, when I start on the next level I just save the finished one somewhere else after renameing it, simple, no menues or fancy displays, I even stick to editing just one aspect per editor, terrain in one, building positioning in another (often has it`s own requirements), objects in another etc, imo too many people spend months creating editors when the time would be better spent on the actual game, heres a very simple editor that positions wall blocks for a maze game.
sync on:sync rate 10
set text opaque
dim level(40,30)
init_borders()
global x=2
global y=2
do
cls
draw_level()
key_control()
display_cursor()
toggle_level_cell()
save_keypress()
sync
loop
function save_level()
if file exist("level.lvl")
delete file "level.lvl"
endif
open to write 1,"level.lvl"
for i=1 to 30
for l=1 to 40
write byte 1,level(l,i)
next l
next i
close file 1
end
endfunction
function draw_level()
for i=1 to 40
for l=1 to 30
if level(i,l)=1 then text i*15,l*15,"#"
next l
next i
endfunction
function key_control()
if upkey() and y>2 then y=y-1
if downkey() and y<29 then y=y+1
if leftkey() and x>2 then x=x-1
if rightkey() and x<39 then x=x+1
endfunction
function display_cursor()
if level(x,y)=1
ink rgb(255,0,0),0
text x*15,y*15,"#"
ink rgb(255,255,255),0
else
ink rgb(255,255,255),0
text x*15,y*15,"*"
endif
endfunction
function toggle_level_cell()
if spacekey()
level(x,y)=1-level(x,y)
repeat
until spacekey()=0
endif
endfunction
function save_keypress()
if keystate(59)
save_level()
endif
endfunction
function init_borders()
for i=1 to 40
level(i,1)=1
level(i,30)=1
next i
for i=1 to 30
level(1,i)=1
level(40,i)=1
next i
endfunction
minimalist, but it only took 15 minutes to write, thats more time to spend on other things, so, yes! go ahead with your idea, it will work just fine, if you want to stick to using a text editor then you might want to place different values on different lines rather than seperating them by commas, easier to read, just read a line and convert it to a number, the file will not be any larger for it.
if there is one thing I can NOT tolerate, it`s intolerant people.