Help with Associative array problems.
    Spacen Jasset 
    spacenjasset at yahoo.co.uk
       
    Wed Apr  2 02:30:34 PDT 2008
    
    
  
The program below does not print what it should, either using a File or 
the TArrayStream.
It prints this:
user at vm-fruitbat:~$ dmd t.d
user at vm-fruitbat:~$ ./t
Error: 4invalid UTF-8 sequence
Material user at vm-fruitbat:~$
I can "fix" it by saying:
	m[words[1].dup] = 1
But why does the original 'go wrong'
import std.stdio;
import std.string;
import std.stream;
void main()
{
	//Stream file = new File("test.txt");
         TArrayStream!(char[]) file =
		new TArrayStream!(char[])("newmtl one\nnewmtl two");
	int [char[]]	m;
	foreach(ulong line_no, ref string line; file) {
		string words[] = line.split();
       		m[words[1]] = 1; 	
	}
         foreach (char[] k, ref int v; m) {
		writefln("Material %s", k);
	}
}
    
    
More information about the Digitalmars-d-learn
mailing list