public static BitmapFont FromFile(string path, FormatHint formatHint) { using (var fileStream = File.OpenRead(path)) { return(FromStream(fileStream, formatHint, true)); } }
public void Save(string path, FormatHint formatHint) { using (var fileStream = File.Create(path)) { switch (formatHint) { case FormatHint.Binary: { using (var binaryWriter = new BinaryWriter(fileStream)) { WriteBinary(binaryWriter); } break; } case FormatHint.XML: { var settings = new XmlWriterSettings { Indent = true, IndentChars = " " }; using (var xmlWriter = XmlWriter.Create(fileStream, settings)) { WriteXML(xmlWriter); } break; } case FormatHint.Text: { using (var streamWriter = new StreamWriter(fileStream)) { WriteText(streamWriter); } break; } default: throw new ArgumentOutOfRangeException(nameof(formatHint), formatHint, null); } } }
public static BitmapFont FromStream(Stream stream, FormatHint formatHint, bool leaveOpen) { switch (formatHint) { case FormatHint.Binary: using (var binaryReader = new BinaryReader(stream, Encoding.UTF8, leaveOpen)) return(ReadBinary(binaryReader)); case FormatHint.XML: using (var streamReader = new StreamReader(stream, Encoding.UTF8, true, 1024, leaveOpen)) return(ReadXML(streamReader)); case FormatHint.Text: using (var streamReader = new StreamReader(stream, Encoding.UTF8, true, 1024, leaveOpen)) return(ReadText(streamReader)); default: throw new ArgumentOutOfRangeException(nameof(formatHint), formatHint, null); } }
// ############################################################################################# // protected methods // ############################################################################################# /** **************************************************************************************** * Clears all values. ******************************************************************************************/ protected void clear() { Config= null; Priority= -1; Delim= '\0'; FormatHints= 0; Category._(); Name ._(); Comments._(); Fullname._(); ClearValues(); }
Variable Define( VariableDefinition definition, params Object[] replacements ) { clear(); Delim= definition.Delim; FormatHints= definition.FormatHints; FormatAttrAlignment= definition.FormatAttrAlignment; // set Category, Name, Comment if( definition.Category != null ) Category._( definition.Category ); else Category._( definition.CategoryFallback ); Name ._( definition.Name ); Comments._( definition.Comments ); if ( definition.DefaultValue != null ) DefaultValue._()._( definition.DefaultValue ); else DefaultValue.SetNull(); // replace strings if ( replacements != null && replacements.Length > 0 ) { AString search= Fullname; // just an alias name AString repl= new AString(); values.Add(repl); // reuse this string later for( int i= 0; i < replacements.Length; i++ ) { search._()._("%")._(i + 1); repl ._()._( replacements[i] ); Category .SearchAndReplace( search, repl ); Name .SearchAndReplace( search, repl ); Comments .SearchAndReplace( search, repl ); DefaultValue.SearchAndReplace( search, repl ); } search._(); } // set full name if( Category.IsNotEmpty() ) Fullname._( Category )._( '_' ); Fullname._( Name ); ALIB.ASSERT_WARNING( Name.IsNotEmpty(), "Empty variable name given" ); return this; }