On Tuesday, 2 January 2018 at 22:08:52 UTC, aerto wrote:
Hello and happy new year im new in d so i have a question

i have into a txt file named users.txt the bellow

["admin":"123456789"]
["test":"test345"]


im my app

string[string] data;

so i need to load users.txt content into data in order to be able to run


writeln(data["admin"]); // i want this to print 123456789
writeln(data["test"]); // i want this to print test345

This seems to work (on Linux with no error checking) but is using the deprecated removechars() which gets deleted May 2018. There should be a simple fix using std.regex.replaceAll but I can't even get a successful compile right now (templates aren't deducing). Someone else should know what the correct replacement is for removechars().

import std.stdio;
import std.string;
import std.algorithm;


void main()
{
   string line;
   string[string] data;
   auto f = File("users.txt","r");
   while ((line = f.readln('\n')) !is null)
   {

      string trimmed = removechars!string(line,"[\\[\\]\"\n\r]");
      auto fields = findSplit(trimmed,":");
      data[fields[0]] = fields[2];
   }
   writeln(data);
   writeln("data for key admin:",data["admin"]);
   f.close();
}


Reply via email to