Ejemplo n.º 1
0
bool IniFile::Save(){
  if (filename.isEmpty()) return false;
  file.setName(filename);
  if (! file.open(QIODevice::WriteOnly)){
#ifdef DEBUG
    cerr << "\nCannot write File: " << filename.latin1();
#else

#endif
    return false;
  }

  IniSection* section;
  IniVar* var;
  QString line;

  // Durchgehen und alles reinschreiben
  file.writeBlock(comment.latin1(),comment.length());
  for(section=sections.first();section!=0;section=sections.next()){
    line="\n[";
    line.append(section->getName());
    line.append("]\n");
    file.writeBlock(line.latin1(),line.length());
    line=section->getComment();
    if (!line.isEmpty()) {
      line += "\n";
      file.writeBlock(line.latin1(),line.length());
    }
    for(var=section->vars.first();var!=0;var=section->vars.next()){
      line=var->getName();
      if (! var->getValue().isEmpty()){
        line.append("=");
        line.append(var->getValue());
        line.append(var->getComment());
//      }else{
        line.append("\n");
      }
      file.writeBlock(line.latin1(),line.length());
    }
  }

  file.close();

  return true;
}