本文整理汇总了C#中System.Resources.ResXResourceWriter.Close方法的典型用法代码示例。如果您正苦于以下问题:C# ResXResourceWriter.Close方法的具体用法?C# ResXResourceWriter.Close怎么用?C# ResXResourceWriter.Close使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Resources.ResXResourceWriter
的用法示例。
在下文中一共展示了ResXResourceWriter.Close方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: UpdateResourceFile
public static void UpdateResourceFile(Hashtable data, string path, TranslatorForm form)
{
form.TextOutput = "Writing " + path + "...";
Hashtable resourceEntries = new Hashtable();
bool check = false;
//Get existing resources
ResXResourceReader reader = new ResXResourceReader(path);
if (reader != null)
{
IDictionaryEnumerator id = reader.GetEnumerator();
foreach (DictionaryEntry d in reader)
{
if (d.Value == null)
resourceEntries.Add(d.Key.ToString(), "");
else
resourceEntries.Add(d.Key.ToString(), d.Value.ToString());
}
reader.Close();
}
//Modify resources here...
foreach (String key in data.Keys)
{
if (!resourceEntries.ContainsKey(key))
{
String value = data[key].ToString();
if (value == null) value = "";
resourceEntries.Add(key, value);
}
}
//Write the combined resource file
ResXResourceWriter resourceWriter = new ResXResourceWriter(path);
foreach (String key in resourceEntries.Keys)
{
resourceWriter.AddResource(key, resourceEntries[key]);
}
resourceWriter.Generate();
resourceWriter.Close();
//Check if entered correctly
reader = new ResXResourceReader(path);
if (reader != null)
{
foreach (DictionaryEntry d in reader)
foreach (String key in resourceEntries.Keys)
{
if ((string) d.Key == key && (string) d.Value == (string) resourceEntries[key]) check = true;
}
reader.Close();
}
if (check) form.TextOutput = path + " written successfully";
else form.TextOutput = path + " not written !!";
}
示例2: Test
public void Test ()
{
Thread.CurrentThread.CurrentCulture =
Thread.CurrentThread.CurrentUICulture = new CultureInfo ("de-DE");
ResXResourceWriter w = new ResXResourceWriter (fileName);
w.AddResource ("point", new Point (42, 43));
w.Generate ();
w.Close ();
int count = 0;
ResXResourceReader r = new ResXResourceReader (fileName);
IDictionaryEnumerator e = r.GetEnumerator ();
while (e.MoveNext ()) {
if ((string) e.Key == "point") {
Assert.AreEqual (typeof (Point), e.Value.GetType (), "#1");
Point p = (Point) e.Value;
Assert.AreEqual (42, p.X, "#2");
Assert.AreEqual (43, p.Y, "#3");
count++;
}
}
r.Close ();
Assert.AreEqual (1, count, "#100");
}
示例3: generateResourceFile
public static void generateResourceFile(string sourceDirectory, string targetResrouceFile)
{
IEnumerable<string> files = Directory.EnumerateFiles(sourceDirectory,"*.*",SearchOption.AllDirectories);
ResXResourceWriter rw=new ResXResourceWriter(targetResrouceFile);
string baseUI = "";
string baseCOM = "";
StringBuilder allACE = new StringBuilder();
StringBuilder allJS = new StringBuilder();
StringBuilder allCom = new StringBuilder();
StringBuilder allUI = new StringBuilder();
StringBuilder allCSS = new StringBuilder();
StringBuilder jquery = new StringBuilder();
string jq_timePicker = "";
foreach(string file in files){
if(!file.Contains(".svn")){/* don't include subversion files */
/* only include certain files. Other files don't get included */
if(file.EndsWith(".png")||file.EndsWith(".jpg")
||file.EndsWith(".gif")||file.EndsWith(".ico")) {
rw.AddResource(getRscString(file,sourceDirectory),File.ReadAllBytes(file));
}else if(file.EndsWith(".js")||file.EndsWith(".html")||
file.EndsWith(".css")||file.EndsWith(".aspx")||file.EndsWith(".sql")
||file.EndsWith(".txt")) {
string content = File.ReadAllText(file);
if(file.EndsWith(".css")){
allCSS.Append(content+Environment.NewLine);
} else if(file.EndsWith(".js")) {
if(file.ToLower().Contains("ui\\ui.js")){
baseUI = content+Environment.NewLine+Environment.NewLine;
} else if(file.ToLower().Contains("commerce\\commerce.js")) {
baseCOM = content+Environment.NewLine+Environment.NewLine;
} else if(file.ToLower().Contains("timepicker\\jquery-timepicker.js")) {
jq_timePicker = content + Environment.NewLine + Environment.NewLine;
} else if(file.ToLower().Contains("jquery\\jquery")) {
jquery.Append(content+Environment.NewLine+Environment.NewLine);
} else if(file.ToLower().Contains("ui\\")){
allUI.Append(content+Environment.NewLine+Environment.NewLine);
allJS.Append(content+Environment.NewLine+Environment.NewLine);
} else if(file.ToLower().Contains("ace\\")){
allACE.Append(content+Environment.NewLine+Environment.NewLine);
} else if(file.ToLower().Contains("commerce\\")){
allCom.Append(content+Environment.NewLine+Environment.NewLine);
allJS.Append(content+Environment.NewLine+Environment.NewLine);
}else{
allJS.Append(content+Environment.NewLine+Environment.NewLine);
}
}
rw.AddResource(getRscString(file,sourceDirectory),content);
} else if(file.ToLower() == "thumbs.db") {
File.Delete(file); /* evil */
}
}
}
rw.AddResource("admin__renditionjs", baseUI + baseCOM + allJS.ToString());
rw.AddResource("admin__acejs", allACE.ToString());
rw.AddResource("admin__jqueryjs", jquery.ToString());
rw.AddResource("admin__renditionUIjs", allACE.ToString() + baseUI + allUI.ToString());
rw.Generate();
rw.Close();
}
示例4: CreateResourceFile
public static void CreateResourceFile(String path)
{
var pathString = Path.GetDirectoryName(path);
if (!Directory.Exists(pathString)) System.IO.Directory.CreateDirectory(pathString);
ResXResourceWriter resourceWriter = new ResXResourceWriter(path);
resourceWriter.Generate();
resourceWriter.Close();
}
示例5: btnSave_Click
private void btnSave_Click(object sender, EventArgs e)
{
SaveFileDialog dlg = new SaveFileDialog();
dlg.Title = "Save resource file";
dlg.Filter = "Resource File|*.resx";
dlg.FileName = cbDestLang.SelectedValue.ToString() + ".resx";
if (dlg.ShowDialog() != DialogResult.OK) return;
ResXResourceWriter rsxw = new ResXResourceWriter(dlg.FileName);
var table = (DataTable) grid.DataSource;
foreach( DataRow row in table.Rows )
{
rsxw.AddResource( row[0].ToString(), row[2].ToString());
}
rsxw.Generate();
rsxw.Close();
}
示例6: GivenThereIsAResxFileWhichFullPathIsHasTheseContents
public void GivenThereIsAResxFileWhichFullPathIsHasTheseContents(string p0, Table table)
{
using (var fileStream = File.Create(Path.Combine(_testFolder, p0)))
{
using (var resxWriter = new ResXResourceWriter(fileStream))
{
foreach (var row in table.Rows)
{
resxWriter.AddResource(row["Name"], row["Value"]);
}
resxWriter.Generate();
resxWriter.Close();
}
fileStream.Close();
}
}
示例7: UpdateResourceFile
public static void UpdateResourceFile(Hashtable data, String path)
{
Hashtable resourceEntries = new Hashtable();
//Add all changes...
foreach (String key in data.Keys)
{
String value = data[key].ToString();
if (value == null) value = "";
resourceEntries.Add(key, value);
}
//Get existing resources
ResXResourceReader reader = new ResXResourceReader(path);
if (reader != null)
{
IDictionaryEnumerator id = reader.GetEnumerator();
foreach (DictionaryEntry d in reader)
{
if (!resourceEntries.ContainsKey(d.Key.ToString()))
{
if (d.Value == null)
resourceEntries.Add(d.Key.ToString(), "");
else
resourceEntries.Add(d.Key.ToString(), d.Value.ToString());
}
}
reader.Close();
}
//Write the combined resource file
ResXResourceWriter resourceWriter = new ResXResourceWriter(path);
foreach (String key in resourceEntries.Keys)
{
resourceWriter.AddResource(key, resourceEntries[key]);
}
resourceWriter.Generate();
resourceWriter.Close();
}
示例8: Main
public static void Main()
{
System.Resources.ResXResourceWriter resourceWriter = new ResXResourceWriter("Content.resx");
FileStream contentFile;
StreamReader fileReader;
contentFile = new System.IO.FileStream("ResourceHeader.txt", FileMode.Open, FileAccess.Read, FileShare.Read);
fileReader = new StreamReader(contentFile);
resourceWriter.AddResource("ResourceHeader", fileReader.ReadToEnd());
contentFile = new System.IO.FileStream("gplexx.frame", FileMode.Open, FileAccess.Read, FileShare.Read);
fileReader = new StreamReader(contentFile);
resourceWriter.AddResource("GplexxFrame", fileReader.ReadToEnd());
contentFile = new System.IO.FileStream("GplexBuffers.txt", FileMode.Open, FileAccess.Read, FileShare.Read);
fileReader = new StreamReader(contentFile);
resourceWriter.AddResource("GplexBuffers", fileReader.ReadToEnd());
resourceWriter.Generate();
resourceWriter.Close();
}
示例9: Main
static void Main(string[] args)
{
if (args.Length < 2)
{
Console.WriteLine("Usage: ResTool <assembly> <resxfile>");
Environment.Exit(64);
}
Assembly asy = Assembly.LoadFrom(args[0]);
ResXResourceWriter resx = new ResXResourceWriter(args[1]);
foreach (Type t in asy.GetTypes())
{
foreach (FieldInfo fi in t.GetFields())
{
if (!fi.IsStatic)
continue;
string n = t.Name + "." + fi.Name;
Console.WriteLine(n);
resx.AddResource(n, fi.GetValue(null));
}
}
resx.Close();
}
示例10: TranslateFile
private void TranslateFile(string filename, string locale, string newDir)
{
string shortName = Path.GetFileName(filename);
string nameWithoutExt = Path.GetFileNameWithoutExtension(filename);
string newname = nameWithoutExt + "." + locale + ".resx";
newname = newDir + "\\" + newname;
//if file already exists
bool fileExists = File.Exists(newname);
Dictionary<string, string> existing = new Dictionary<string, string>();
if (fileExists)
{
Console.WriteLine("File " + newname + " already exists. Existing resources in it will be preserved.");
//get existing keys list
ResXResourceReader readerNewFile = new ResXResourceReader(newname);
foreach (DictionaryEntry d in readerNewFile)
existing.Add(d.Key.ToString(), d.Value.ToString());
readerNewFile.Close();
}
else
{
Console.WriteLine("Creating file " + newname);
}
Console.WriteLine("Translating file " + shortName + " to " + locale + "....");
Application.DoEvents(); //I know its bad but can't go multithreading, since I have to update UI
ResXResourceReader reader = new ResXResourceReader(filename);
ResXResourceWriter writer = new ResXResourceWriter(newname);
foreach (DictionaryEntry d in reader)
{
//leave existing text intact (if its not empty)
if (fileExists
&& existing.Keys.Contains(d.Key.ToString())
&& !string.IsNullOrEmpty(existing[d.Key.ToString()]))
{
writer.AddResource(d.Key.ToString(), existing[d.Key.ToString()]);
}
else
{
string originalString = d.Value.ToString();
if (!string.IsNullOrEmpty(originalString.Trim()))
{
string langPair = "hu|" + LanguageNamesList[locale];
//string translatedString = GoogleTranslate.TranslateText(originalString, langPair);
string translatedString = GoogleTranslate.TranslateGoogle(originalString, "hu", LanguageNamesList[locale]);
Console.WriteLine("[" + originalString + " -> " + translatedString + "]");
writer.AddResource(d.Key.ToString(), translatedString);
//Thread.Sleep(100); //to prevent spam detector at google
}
}
}
writer.Close();
reader.Close();
}
示例11: WriteResourceFile
void WriteResourceFile( )
{
ResXResourceWriter rxrw = new ResXResourceWriter( fullFileName );
foreach ( IResource res_abstract in resourceList.Items )
{
switch ( res_abstract.ResourceType )
{
case ResourceType.TypeImage:
ResourceImage resImage = res_abstract as ResourceImage;
if ( resImage.Image == null )
continue;
rxrw.AddResource( resImage.ResourceName, resImage.Image );
break;
case ResourceType.TypeString:
ResourceString resStr = res_abstract as ResourceString;
if ( resStr == null )
continue;
rxrw.AddResource( resStr.ResourceName, resStr.Text );
break;
case ResourceType.TypeCursor:
ResourceCursor resCursor = res_abstract as ResourceCursor;
if ( resCursor == null )
continue;
rxrw.AddResource( resCursor.ResourceName, resCursor.Cursor );
break;
case ResourceType.TypeIcon:
ResourceIcon resIcon = res_abstract as ResourceIcon;
if ( resIcon == null )
continue;
rxrw.AddResource( resIcon.ResourceName, resIcon.Icon );
break;
case ResourceType.TypeColor:
ResourceColor resColor = res_abstract as ResourceColor;
if ( resColor == null )
continue;
rxrw.AddResource( resColor.ResourceName, resColor.Color );
break;
case ResourceType.TypeByteArray:
ResourceByteArray resByteArray = res_abstract as ResourceByteArray;
if ( resByteArray == null )
continue;
rxrw.AddResource( resByteArray.ResourceName, resByteArray.ByteArray );
break;
default:
break;
}
}
rxrw.Close( );
}
示例12: Main
static void Main(string[] args)
{
Console.WriteLine("Psuedoizer: Adapted from MSDN BugSlayer 2004-Apr i18n Article.");
if(args.Length < 2)
{
Console.WriteLine("Purpose: Takes an English resource file (resx) and creates an artificial");
Console.WriteLine(" but still readable Euro-like language to exercise your i18n code");
Console.WriteLine(" without a formal translation.");
Console.WriteLine(String.Empty);
Console.WriteLine("Psuedoizer.exe infile outfile [/b]");
Console.WriteLine(" Example:");
Console.WriteLine(" Psuedoizer.exe strings.en.resx strings.ja-JP.resx");
Console.WriteLine(" /b - Include blank resources");
System.Environment.Exit(1);
}
string fileName = args[0];
string fileSaveName = args[1];
bool IncludeBlankResources = (args.Length >= 3 && args[2] == "/b");
// Open the input file.
ResXResourceReader reader = new ResXResourceReader ( fileName ) ;
try
{
// Get the enumerator. If this throws an ArguementException
// it means the file is not a .RESX file.
IDictionaryEnumerator enumerator = reader.GetEnumerator ( ) ;
// Allocate the list for this instance.
SortedList textResourcesList = new SortedList ( ) ;
// Run through the file looking for only true text related
// properties and only those with values set.
foreach ( DictionaryEntry dic in reader )
{
// Only consider this entry if the value is something.
if ( null != dic.Value )
{
// Is this a System.String.
if ( "System.String" == dic.Value.GetType().ToString())
{
String KeyString = dic.Key.ToString ( ) ;
// Make sure the key name does not start with the
// "$" or ">>" meta characters and is not an empty
// string (or we're explicitly including empty strings).
if ( ( false == KeyString.StartsWith ( ">>" ) ) &&
( false == KeyString.StartsWith ( "$" ) ) &&
( IncludeBlankResources || "" != dic.Value.ToString() ) )
{
// We've got a winner.
textResourcesList.Add ( dic.Key , dic.Value ) ;
}
// Special case the Windows Form "$this.Text" or
// I don't get the form titles.
if ( 0 == String.Compare ( KeyString,"$this.Text"))
{
textResourcesList.Add ( dic.Key , dic.Value ) ;
}
}
}
}
// It's entirely possible that there are no text strings in the
// .ResX file.
if ( textResourcesList.Count > 0 )
{
if ( null != fileSaveName )
{
// Create the new file.
ResXResourceWriter writer =
new ResXResourceWriter ( fileSaveName ) ;
foreach ( DictionaryEntry textdic in textResourcesList )
{
writer.AddResource ( textdic.Key.ToString(), Psuedoizer.ConvertToFakeInternationalized(textdic.Value.ToString()));
}
writer.Generate ( ) ;
writer.Close ( ) ;
Console.WriteLine("Converted " + textResourcesList.Count + " text resource(s).");
}
}
else
{
Console.Write("WARNING: No text resources found in " + fileName);
System.Environment.Exit(2);
}
}
catch(Exception e)
{
Console.Write(e.ToString());
System.Environment.Exit(1);
}
}
示例13: Write
// Write any localized strings to the localized file
public void Write()
{
// Create the new file.
ResXResourceWriter writer = new ResXResourceWriter(LocalizedFileName);
// Iterate the list view and write current items.
foreach (LocString locstr in AllStrings) {
if (!string.IsNullOrEmpty(locstr.Localized))
writer.AddResource(locstr.Name, locstr.Localized);
}
// Write all the non-string nodes back to the file.
foreach (ResXDataNode dataNode in nonStringNodes)
writer.AddResource(dataNode);
writer.Generate();
writer.Close();
}
示例14: saveResxFiles
private void saveResxFiles(bool askUnsaved)
{
try
{
if (askUnsaved)
{
if (!unsavedChanges)
return;
if (DialogResult.No == MessageBox.Show(this, LangHandler.GetString("txtSave1"), LangHandler.GetString("txtSave2"), MessageBoxButtons.YesNo, MessageBoxIcon.Question))
return;
}
txtComment_Leave(null, EventArgs.Empty);
txtValue_Leave(null, EventArgs.Empty);
if (SettingsHandler.Instance.SortByKeyOnSave && dataGridView.Columns.Contains("keys"))
dataGridView.Sort(dataGridView.Columns["keys"], ListSortDirection.Ascending);
for (int column = 1; column < dataGridView.Columns.Count; column++)
{
using (ResXResourceWriter resourceWriter = new ResXResourceWriter(dataGridView.Columns[column].Name))
{
for (int row = 0; row < dataGridView.Rows.Count; row++)
{
ResXDataNode currentNode = dataGridView.Rows[row].Cells[column].Tag as ResXDataNode;
Object currentValue = dataGridView.Rows[row].Cells[column].Value as Object;
bool isReadOnly = dataGridView.Rows[row].Cells[column].ReadOnly;
if (currentValue != null && !isReadOnly)
{
ResXDataNode nodeToAdd = new ResXDataNode((string)dataGridView.Rows[row].Cells["keys"].Value, currentValue);
if (currentNode != null) nodeToAdd.Comment = currentNode.Comment;
resourceWriter.AddResource(nodeToAdd);
continue;
}
if (currentNode != null && isReadOnly)
{
resourceWriter.AddResource(currentNode);
}
}
resourceWriter.Generate();
resourceWriter.Close();
}
}
unsavedChanges = false;
resetColors();
}
catch (Exception ex)
{
#if (DEBUG)
MessageBox.Show(this, string.Format("{0}\n\n{1}", ex.Message, ex.StackTrace), LangHandler.GetString("errorSaving"), MessageBoxButtons.OK, MessageBoxIcon.Error);
#else
MessageBox.Show(this, ex.Message, LangHandler.GetString("errorSaving"), MessageBoxButtons.OK, MessageBoxIcon.Error);
#endif
}
}
示例15: RestoreResXFromResource
/// <summary>
/// 从resource文件还原resx文件
/// </summary>
/// <param name="strPath">文件路径</param>
/// <param name="strCsProj">csproj内容</param>
private void RestoreResXFromResource(string strPath, ref string strCsProj)
{
string[] files = Directory.GetFiles(strPath, "*.resources");//查询文件
for (int i = 0; i < (int)files.Length; i++)
{
string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(files[i].Substring(selectPath.Length));
//取文件名去掉扩展名
string strResxFile = Path.Combine(strPath, string.Concat(string.Join("\\", fileNameWithoutExtension.Split(new char[] { '.' })), ".resx"));
//resx文件路径
ResourceReader resourceReaders = new ResourceReader(files[i]); //读取资源文件
ResXResourceWriter resXResourceWriter = new ResXResourceWriter(strResxFile); //打开resx文件
foreach (DictionaryEntry resourceReader in resourceReaders)
{//从resource文件中读取资源写入resx文件
try
{
resXResourceWriter.AddResource(resourceReader.Key.ToString(), resourceReader.Value);
}
catch (Exception ex)
{
UpdateMsg(resourceReader.Key.ToString() + "\r\n" + ex.ToString());
}
}
resXResourceWriter.Close();
resourceReaders.Close();
UpdateMsg(strResxFile.Substring(selectPath.Length));//resx文件更新消息
if (strCsProj != null)
{//更新csproj
string strResXName = strResxFile.Substring(selectPath.Length);
//resx文件名
if (!strCsProj.Contains(string.Concat("=\"", strResXName, "\"")))
{//csproj中不包含则添加
int num = strCsProj.LastIndexOf("</ItemGroup>");//最后位置
if (num <= 0)
{//适应低版本
num = strCsProj.LastIndexOf("=\"EmbeddedResource\"");
strCsProj = string.Concat(strCsProj.Substring(0, num)
, "=\"EmbeddedResource\" />\r\n\t\t<File RelPath=\""
, strResXName
, "\" DependentUpon=\""
, Path.GetFileNameWithoutExtension(strResXName)
,".cs\" BuildAction"
, strCsProj.Substring(num));
}
else
{
strCsProj = string.Concat(strCsProj.Substring(0, num)
, " <EmbeddedResource Include=\""
, strResXName
, "\">\r\n\t<SubType>Designer</SubType>\r\n\t<DependentUpon>"
, Path.GetFileNameWithoutExtension(strResXName)
, ".cs</DependentUpon>\r\n\t</EmbeddedResource>"
, strCsProj.Substring(num));
//插入resx文件引用
strCsProj = strCsProj.Replace(string.Concat("<EmbeddedResource Include=\""
, Path.GetFileName(files[i])
, "\" />")
, "");//删除resources文件引用
}
}
}
}
}