예제 #1
0
        internal static CodeCompileUnit Create(String resxFile, String baseName, String generatedCodeNamespace, String resourcesNamespace, CodeDomProvider codeProvider, bool internalClass, out String[] unmatchable)
        {
            if (resxFile == null)
            {
                throw new ArgumentNullException(nameof(resxFile));
            }

#if FEATURE_RESXREADER_LIVEDESERIALIZATION
            // Read the resources from a ResX file into a dictionary - name & type name
            Dictionary <String, ResourceData> resourceList = new Dictionary <String, ResourceData>(StringComparer.InvariantCultureIgnoreCase);
            using (ResXResourceReader rr = new ResXResourceReader(resxFile))
            {
                rr.UseResXDataNodes = true;
                foreach (DictionaryEntry de in rr)
                {
                    var    node          = (ResXDataNode)de.Value;
                    String typeName      = node.GetValueTypeName((AssemblyName[])null);
                    Type   type          = Type.GetType(typeName);
                    String valueAsString = node.GetValue((AssemblyName[])null).ToString();
                    var    data          = new ResourceData(type, valueAsString);
                    resourceList.Add((String)de.Key, data);
                }
            }

            // Note we still need to verify the resource names are valid language
            // keywords, etc.  So there's no point to duplicating the code above.

            return(InternalCreate(resourceList, baseName, generatedCodeNamespace, resourcesNamespace, codeProvider, internalClass, out unmatchable));
#else
            throw new PlatformNotSupportedException("Creating strongly-typed resources directly from a resx file is not currently supported on .NET Core");
#endif
        }
예제 #2
0
        static DiscordHelpAttribute()
        {
            string resxFile = Path.GetDirectoryName(Assembly.GetAssembly(typeof(DiscordHelpAttribute)).Location) + @"\Resources.resx";

            using (var resxReader = new ResXResourceReader(resxFile))
                _keys = resxReader.Cast <DictionaryEntry>().Select(x => x.Key.ToString()).ToList();
        }
        public void SaveResxAsTypeScriptFile(string[] resxFiles, string outputTSFilePAth)
        {
            var sb = new StringBuilder();

            sb.AppendLine("// This file is auto generated");
            sb.AppendLine("");
            sb.AppendLine("export class PortalResources");
            sb.AppendLine("{");

            foreach (var resxFile in resxFiles)
            {
                if (File.Exists(resxFile))
                {
                    ResXResourceReader rsxr = new ResXResourceReader(resxFile);
                    foreach (DictionaryEntry d in rsxr)
                    {
                        sb.AppendLine(string.Format("    public static {0}: string = \"{0}\";", d.Key.ToString()));
                    }

                    //Close the reader.
                    rsxr.Close();
                }
            }
            sb.AppendLine("}");

            using (System.IO.StreamWriter file = new System.IO.StreamWriter(outputTSFilePAth))
            {
                file.WriteLine(sb.ToString());
            }
        }
        public ResourceControl(WebResource resource)
        {
            InitializeComponent();

            this.resource = resource;

            byte[] b = Convert.FromBase64String(resource.EntityContent);
            innerContent    = Encoding.UTF8.GetString(b);
            originalContent = innerContent;
            innerType       = Enumerations.WebResourceType.Resx;

            Stream stream = new MemoryStream(b);

            table = new DataTable();
            table.Columns.Add(new DataColumn("Key"));
            table.Columns.Add(new DataColumn("Value"));

            Dictionary <string, string> resourceMap = new Dictionary <string, string>();

            rsxr = new ResXResourceReader(stream);
            foreach (DictionaryEntry d in rsxr)
            {
                if (string.IsNullOrEmpty(d.Key?.ToString()))
                {
                    continue;
                }
                table.Rows.Add(d.Key.ToString(), d.Value?.ToString());
            }
            rsxr.Close();

            dgv.DataSource = table;

            dgv.CellValueChanged += dgv_CellValueChanged;
            dgv.UserDeletedRow   += dgv_UserDeletedRow;;
        }
예제 #5
0
        private Stream ProvideResourceData(string resourceFullFilename)
        {
            // For non-.resx files just create a FileStream object to read the file as binary data
            if (!resourceFullFilename.EndsWith(".resx", StringComparison.OrdinalIgnoreCase))
            {
                return(File.OpenRead(resourceFullFilename));
            }

            var shortLivedBackingStream = new MemoryStream();

            using (ResourceWriter resourceWriter = new ResourceWriter(shortLivedBackingStream))
            {
                resourceWriter.TypeNameConverter = TypeNameConverter;
                using (var resourceReader = new ResXResourceReader(resourceFullFilename))
                {
                    resourceReader.BasePath = Path.GetDirectoryName(resourceFullFilename);
                    var dictionaryEnumerator = resourceReader.GetEnumerator();
                    while (dictionaryEnumerator.MoveNext())
                    {
                        if (dictionaryEnumerator.Key is string resourceKey)
                        {
                            resourceWriter.AddResource(resourceKey, dictionaryEnumerator.Value);
                        }
                    }
                }
            }

            return(new MemoryStream(shortLivedBackingStream.GetBuffer()));
        }
예제 #6
0
        /// <summary>
        /// Read Resource file entries and return them via yield statement.
        /// </summary>
        /// <param name="stringFile"></param>
        /// <returns>IEnumerable<Tuple<string, string, string>>
        /// Item1 Key,
        /// Item2 value,
        /// Item3 comment
        /// </returns>
        public IEnumerable <Tuple <string, string, string> > LoadFile(string pathFileName,
                                                                      CancellationTokenSource cts = null)
        {
            using (ResXResourceReader reader = new ResXResourceReader(pathFileName))
            {
                bool useDataNodes = true;

                reader.UseResXDataNodes = useDataNodes;

                // Enumerate string resource entries using default enumerator IEnumerable.GetEnumerator().
                foreach (DictionaryEntry entry in reader)
                {
                    if (cts != null)
                    {
                        cts.Token.ThrowIfCancellationRequested();
                    }

                    // Use a null type resolver.
                    ITypeResolutionService typeres = null;
                    ResXDataNode           dnode;

                    // Display from node info.
                    dnode = entry.Value as ResXDataNode;

                    // yield Key, value, comment strings as part of the collection
                    Tuple <string, string, string> resultEntry =
                        new Tuple <string, string, string>(dnode.Name,
                                                           dnode.GetValue(typeres) as string,
                                                           dnode.Comment);

                    yield return(resultEntry);
                }
            }
        }
예제 #7
0
        public void TestRoundTrip()
        {
            var key   = "Some.Key.Name";
            var value = "Some.Key.Value";

            using (var stream = new MemoryStream())
            {
                using (var writer = new ResXResourceWriter(stream))
                {
                    writer.AddResource(key, value);
                }

                var buffer = stream.ToArray();
                using (var reader = new ResXResourceReader(new MemoryStream(buffer)))
                {
                    var dictionary = new Dictionary <object, object>();
                    IDictionaryEnumerator dictionaryEnumerator = reader.GetEnumerator();
                    while (dictionaryEnumerator.MoveNext())
                    {
                        dictionary.Add(dictionaryEnumerator.Key, dictionaryEnumerator.Value);
                    }

                    KeyValuePair <object, object> pair = Assert.Single(dictionary);
                    Assert.Equal(key, pair.Key);
                    Assert.Equal(value, pair.Value);
                }
            }
        }
예제 #8
0
        void ReadLocalized()
        {
            if (!File.Exists(LocalizedFileName))
            {
                return;
            }

            ResXResourceReader reader = new ResXResourceReader(LocalizedFileName);

            reader.UseResXDataNodes = true;

            System.Collections.IDictionaryEnumerator enumerator = reader.GetEnumerator();

            // Run through the file looking for only true text related
            // properties and only those with values set. Others are saved in the nonStringNodes
            // so they can be written back later.
            foreach (System.Collections.DictionaryEntry dic in reader)
            {
                // Only consider this entry if the value is something.
                if (null != dic.Value)
                {
                    ResXDataNode dataNode = (ResXDataNode)dic.Value;
                    if (InterestingString(dataNode) && strings.ContainsKey(dataNode.Name))
                    {
                        strings[dataNode.Name].Localized = (string)(dataNode.GetValue(noAssemblies));
                    }
                    else
                    {
                        nonStringNodes.Add(dataNode);
                    }
                }
            }
        }
예제 #9
0
    public static List <DictionaryEntry> ReadResourceFile(string path)
    {
        List <DictionaryEntry> resourceEntries = new List <DictionaryEntry>();

        //Get existing resources
        ResXResourceReader reader = new ResXResourceReader(path);

        reader.UseResXDataNodes = true;
        System.ComponentModel.Design.ITypeResolutionService typeres = null;
        if (reader != null)
        {
            IDictionaryEnumerator id = reader.GetEnumerator();
            DictionaryEntry       emptyValue;
            emptyValue.Value = "";

            foreach (DictionaryEntry d in reader)
            {
                //Read from file:
                if (d.Value == null)
                {
                    emptyValue.Key = d.Key;
                    resourceEntries.Add(emptyValue);
                }
                else
                {
                    resourceEntries.Add(d);
                }
            }
            reader.Close();
        }

        return(resourceEntries);
    }
예제 #10
0
    public static void AddOrUpdateResource(DictionaryEntry newElement, string resourceFilepath)
    {
        var resx = new List <DictionaryEntry>();

        using (var reader = new ResXResourceReader(resourceFilepath))
        {
            resx = reader.Cast <DictionaryEntry>().ToList();
            var existingResource = resx.Where(r => r.Key == newElement.Key).FirstOrDefault();
            if (existingResource.Key == null && existingResource.Value == null) // NEW!
            {
                resx.Add(newElement);
            }
            else // MODIFIED RESOURCE!
            {
                var modifiedResx = new DictionaryEntry()
                {
                    Key = existingResource.Key, Value = newElement.Value
                };
                resx.Remove(existingResource); // REMOVING RESOURCE!
                resx.Add(modifiedResx);        // AND THEN ADDING RESOURCE!
            }
        }
        using (var writer = new ResXResourceWriter(resourceFilepath))
        {
            resx.ForEach(r =>
            {
                // Again Adding all resource to generate with final items
                writer.AddResource(r.Key.ToString(), r.Value.ToString());
            });
            writer.Generate();
            writer.Close();
        }
    }
예제 #11
0
        /// <summary>
        /// Записать зничения в файл.
        /// </summary>
        private void SaveNewValue(ResXResourceReader targetResourceReader, ResXResourceWriter targetResourceWriter, Dictionary <string, string> keyValuePairs)
        {
            try
            {
                var node = targetResourceReader.GetEnumerator();
                while (node.MoveNext())
                {
                    targetResourceWriter.AddResource(node.Key.ToString(), node.Value.ToString());
                }

                foreach (var keyValuePair in keyValuePairs)
                {
                    targetResourceWriter.AddResource(new ResXDataNode(keyValuePair.Key, keyValuePair.Value));
                    _logService.AddMessage($"Добавлен ключ: {keyValuePair.Key} со значением: {keyValuePair.Value}");
                }

                targetResourceWriter.Generate();
                targetResourceWriter.Close();

                _logService.AddMessage($"Все значения записаны.");
            }
            catch (Exception ex)
            {
                System.Windows.Forms.MessageBox.Show(ex.Message);
            }
        }
예제 #12
0
        public void Convert(Options options)
        {
            var resourceFiles = resxReader.GetResourceFiles(options.InputFolder);

            var baseResourceFile = resourceFiles.First(x => x.IsBaseResourceType);

            var baseResourceDict = resxReader.GetKeyValuePairsFromResxFile(baseResourceFile);

            foreach (var resourceFile in resourceFiles)
            {
                var jsFileNameWithoutPath = resourceFile.ResourceFilePathName.Substring(resourceFile.ResourceFilePathName.LastIndexOf("\\") + 1) + ".js";
                var outputJsFilePathName  = Path.Combine(options.OutputFolder, jsFileNameWithoutPath);

                if (resourceFile.IsBaseResourceType)
                {
                    WriteOutput(options, baseResourceDict, outputJsFilePathName);
                }
                else
                {
                    var cultureSpecificResourceDict = objectCopier.Copy(baseResourceDict);
                    var rsxr = new ResXResourceReader(resourceFile.ResourceFilePathName);
                    foreach (DictionaryEntry d in rsxr)
                    {
                        var key = d.Key as string;
                        cultureSpecificResourceDict[key] = d.Value.ToString();
                    }
                    //Close the reader.
                    rsxr.Close();

                    WriteOutput(options, cultureSpecificResourceDict, outputJsFilePathName);
                }
            }
        }
예제 #13
0
        protected void LoadResource(string pluginName)
        {
            string path;

            try
            {
                path = HttpContext.Current.Server.MapPath("/").Replace("IUDICO.LMS", pluginName);
            }
            catch (Exception)
            {
                path = Path.Combine(Assembly.GetExecutingAssembly().CodeBase.Remove(0, 8) + @"\..\..\..\..\", pluginName) + @"\";
            }

            this.resource.Add(pluginName, new Dictionary <string, Dictionary <string, string> >());

            foreach (var culture in Cultures)
            {
                try
                {
                    var resourceReader  = new ResXResourceReader(path + "Resource." + culture + ".resx");
                    var resourceEntries = resourceReader.Cast <DictionaryEntry>().ToDictionary(d => d.Key.ToString(), d => d.Value.ToString());

                    this.resource[pluginName].Add(culture, resourceEntries);
                }
                catch (Exception)
                {
                }
            }
        }
예제 #14
0
        public bool Compile(string resx, ref string resources)
        {
            DictionaryEntry item;

            if (string.IsNullOrWhiteSpace(resources))
            {
                resources = Path.GetTempFileName();
            }

            try
            {
                using (var w = new ResourceWriter(resources))
                {
                    using (var r = new ResXResourceReader(resx))
                    {
                        r.BasePath = Path.GetDirectoryName(resx);
                        var e = r.GetEnumerator();
                        while (e.MoveNext())
                        {
                            item = (DictionaryEntry)e.Current;
                            w.AddResource(item.Key as string, item.Value);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Log.Exception(ex);
                return(false);
            }
            return(true);
        }
예제 #15
0
        public string ReadResFile(string key)
        {
            string resourceValue = string.Empty;
            string file          = "";

            switch (Employee.TheLanguageCode)
            {
            case "da-DK": file = "Message.da-DK.resx";
                break;

            case "de-DE": file = "Message.de-DE.resx";
                break;

            case "en-US": file = "Message.en-US.resx";
                break;
            }
            ResXResourceReader    r  = new ResXResourceReader(file);
            IDictionaryEnumerator en = r.GetEnumerator();

            while (en.MoveNext())
            {
                if (en.Key.Equals(key))
                {
                    return(resourceValue = en.Value.ToString());
                }
            }
            r.Close();
            return("");
        }
예제 #16
0
    static bool LoadStrings(List <Tuple <string, string, string> > resourcesStrings, List <string> files)
    {
        var keys = new Dictionary <string, string> ();

        foreach (var fileName in files)
        {
            if (!File.Exists(fileName))
            {
                Console.Error.WriteLine($"Error reading resource file '{fileName}'");
                return(false);
            }

            var rr = new ResXResourceReader(fileName);
            rr.UseResXDataNodes = true;
            var dict = rr.GetEnumerator();
            while (dict.MoveNext())
            {
                var node = (ResXDataNode)dict.Value;

                resourcesStrings.Add(Tuple.Create(node.Name, (string)node.GetValue((ITypeResolutionService)null), node.Comment));
            }
        }

        return(true);
    }
예제 #17
0
        public void WriteRead1()
        {
            serializable ser = new serializable("aaaaa", "bbbbb");
            ResXDataNode dn  = new ResXDataNode("test", ser);

            dn.Comment = "comment";

            string resXFile = GetResXFileWithNode(dn, "resx.resx");

            bool found            = false;
            ResXResourceReader rr = new ResXResourceReader(resXFile);

            rr.UseResXDataNodes = true;
            IDictionaryEnumerator en = rr.GetEnumerator();

            while (en.MoveNext())
            {
                ResXDataNode node = ((DictionaryEntry)en.Current).Value as ResXDataNode;
                if (node == null)
                {
                    break;
                }
                serializable o = node.GetValue((AssemblyName [])null) as serializable;
                if (o != null)
                {
                    found = true;
                    Assert.AreEqual(ser, o, "#A1");
                    Assert.AreEqual("comment", node.Comment, "#A3");
                }
            }
            rr.Close();

            Assert.IsTrue(found, "#A2 - Serialized object not found on resx");
        }
예제 #18
0
        private void lenguaje(string idioma)
        {
            ResXResourceReader rsxr = new ResXResourceReader(@".\" + idioma + ".resx");

            ListarControles();
            // Iterate through the resources and display the contents to the console.
            foreach (DictionaryEntry d in rsxr)
            {
                foreach (TabPage x in allItems)
                {
                    if (x.Tag.ToString() == d.Key.ToString())
                    {
                        x.Text = d.Value.ToString();
                    }
                }


                foreach (Control x in ctrl)
                {
                    if (x.Tag.ToString() == d.Key.ToString())
                    {
                        x.Text = d.Value.ToString();
                    }
                }
            }
        }
        public static string Get(string key)
        {
            var str = UrlLanguage.CurrentLanguage;

            if (!strings.ContainsKey(str))
            {
                strings[str] = new Dictionary <string, string>();

                //загрузить строки из xml
                string fileName = System.IO.Path.Combine(GuestService.Notifications.TemplateParser.GetAssemblyDirectory(), "Resources", "AccountStrings." + str + ".resx");

                if (System.IO.File.Exists(fileName))
                {
                    ResXResourceReader rr = new ResXResourceReader(fileName);

                    foreach (DictionaryEntry d in rr)
                    {
                        strings[str].Add(d.Key.ToString(), d.Value.ToString());
                    }
                }
            }

            if (strings[str].ContainsKey(key))
            {
                return(strings[str][key]);
            }

            return(AccountStrings.ResourceManager.GetString(key, AccountStrings.resourceCulture));
        }
예제 #20
0
        public static void RemoveAndAddNewResEntry(string resFileName, string key, string value)
        {
            bool isKeyExist = false;

            using (ResXResourceReader reader = new ResXResourceReader(resFileName))
            {
                using (ResXResourceWriter writer = new ResXResourceWriter(resFileName))
                {
                    IDictionaryEnumerator de = reader.GetEnumerator();
                    while (de.MoveNext())
                    {
                        if (!de.Entry.Key.ToString().Equals(key, StringComparison.InvariantCultureIgnoreCase))
                        {
                            writer.AddResource(de.Entry.Key.ToString(), de.Entry.Value.ToString());
                        }
                        else
                        {
                            isKeyExist = true;
                        }
                    }
                    if (!isKeyExist)
                    {
                        writer.AddResource(key, value);
                    }
                }
            }
        }
예제 #21
0
        public void AddResource_WithComment()
        {
            ResXResourceWriter w    = new ResXResourceWriter(fileName);
            ResXDataNode       node = new ResXDataNode("key", "value");

            node.Comment = "comment is preserved";
            w.AddResource(node);
            w.Generate();
            w.Close();

            ResXResourceReader     r       = new ResXResourceReader(fileName);
            ITypeResolutionService typeres = null;

            r.UseResXDataNodes = true;

            int count = 0;

            foreach (DictionaryEntry o in r)
            {
                string key = o.Key.ToString();
                node = (ResXDataNode)o.Value;
                string value   = node.GetValue(typeres).ToString();
                string comment = node.Comment;

                Assert.AreEqual("key", key, "key");
                Assert.AreEqual("value", value, "value");
                Assert.AreEqual("comment is preserved", comment, "comment");
                Assert.AreEqual(0, count, "too many nodes");
                count++;
            }
            r.Close();

            File.Delete(fileName);
        }
	private void RemoveEmptyEntries (string file)
	{
		try {
			var newFile = file + ".out";
			using (ResXResourceWriter resxWriter = new ResXResourceWriter (newFile)) {
				var resxReader = new ResXResourceReader(file);
				resxReader.UseResXDataNodes = true;
				foreach (DictionaryEntry entry in resxReader) {
					var node = (ResXDataNode) entry.Value;
					if (!string.IsNullOrEmpty (node.GetValue((ITypeResolutionService) null).ToString ())) {
						resxWriter.AddResource (node);
					}
				}
				resxReader.Close ();
			}

			if (new FileInfo (newFile).Length < new FileInfo (file).Length) {
				File.Delete (file);
				File.Move (newFile, file);
			}
			else {
				File.Delete (newFile);
			}
		}
		catch (Exception ex) {
			Console.WriteLine ("{0}: {1}", file, ex.Message);
		}
	}
    public static void Main()
    {
        CreateXMLResourceFile();

        // Read the resources in the XML resource file.
        ResXResourceReader resx = new ResXResourceReader("DogBreeds.resx");

        Console.WriteLine("Default Base Path: '{0}'", resx.BasePath);
        resx.BasePath = @"C:\Data\";
        Console.WriteLine("Current Base Path: '{0}'\n", resx.BasePath);
        resx.UseResXDataNodes = true;

        IDictionaryEnumerator dict = resx.GetEnumerator();

        AssemblyName[] assemblyNames = { new AssemblyName(typeof(Bitmap).Assembly.FullName) };
        while (dict.MoveNext())
        {
            ResXDataNode node = (ResXDataNode)dict.Value;
            if (node.FileRef != null)
            {
                object image = node.GetValue(assemblyNames);
                Console.WriteLine("{0}: {1} from {2}", dict.Key,
                                  image.GetType().Name, node.FileRef.FileName);
            }
            else
            {
                Console.WriteLine("{0}: {1}", node.Name, node.GetValue((ITypeResolutionService)null));
            }
        }
    }
예제 #24
0
파일: monoresgen.cs 프로젝트: trexware/mono
    static IResourceReader GetReader(Stream stream, string name, bool useSourcePath)
    {
        string format = Path.GetExtension(name);

        switch (format.ToLower(System.Globalization.CultureInfo.InvariantCulture))
        {
        case ".po":
            return(new PoResourceReader(stream));

        case ".txt":
        case ".text":
            return(new TxtResourceReader(stream, symbols));

        case ".resources":
            return(new ResourceReader(stream));

        case ".resx":
            var reader = new ResXResourceReader(stream);
            if (useSourcePath)
            {
                reader.BasePath = Path.GetDirectoryName(name);
            }
            return(reader);

        default:
            throw new Exception("Unknown format in file " + name);
        }
    }
예제 #25
0
        public void WriteRead1()
        {
            ResXResourceWriter rw  = new ResXResourceWriter("resx.resx");
            serializable       ser = new serializable("aaaaa", "bbbbb");
            ResXDataNode       dn  = new ResXDataNode("test", ser);

            dn.Comment = "comment";
            rw.AddResource(dn);
            rw.Close();

            bool found = false;
            ResXResourceReader    rr = new ResXResourceReader("resx.resx");
            IDictionaryEnumerator en = rr.GetEnumerator();

            while (en.MoveNext())
            {
                serializable o = ((DictionaryEntry)en.Current).Value as serializable;
                if (o != null)
                {
                    found = true;
                    Assert.AreEqual(ser, o, "#A1");
                }
            }
            rr.Close();

            Assert.IsTrue(found, "#A2 - Serialized object not found on resx");
        }
예제 #26
0
        private IResourceReader GetReader(Stream stream, string name)
        {
            string format = Path.GetExtension(name);

            switch (format.ToLower())
            {
            case ".po":
                return(new PoResourceReader(stream));

            case ".txt":
            case ".text":
                return(new TxtResourceReader(stream));

            case ".resources":
                return(new ResourceReader(stream));

            case ".resx":
                ResXResourceReader reader = new ResXResourceReader(stream);

                // set correct basepath to resolve relative paths in file refs
                if (useSourcePath)
                {
                    reader.BasePath = Path.GetDirectoryName(Path.GetFullPath(name));
                }

                return(reader);

            default:
                throw new Exception("Unknown format in file " + name);
            }
        }
예제 #27
0
        public override bool Execute()
        {
            try
            {
                _resourcesName = "FxResources." + AssemblyName;

                using (_resxReader = new ResXResourceReader(ResxFilePath))
                {
                    using (_targetStream = File.CreateText(OutputSourceFilePath))
                    {
                        if (String.Equals(Path.GetExtension(OutputSourceFilePath), ".vb", StringComparison.OrdinalIgnoreCase))
                        {
                            _targetLanguage = TargetLanguage.VB;
                        }

                        _keys = new Dictionary <string, int>();
                        WriteClassHeader();
                        RunOnResFile();
                        WriteDebugCode();
                        WriteGetTypeProperty();
                        WriteClassEnd();
                        WriteResourceTypeClass();
                    }
                }
            }
            catch (Exception e)
            {
                Log.LogError("Failed to generate the resource code with error:\n" + e.Message);
                return(false); // fail the task
            }

            return(true);
        }
예제 #28
0
파일: enumerate1.cs 프로젝트: wzchua/docs
    public static void Main()
    {
        string            resxFile = @".\CarResources.resx";
        List <Automobile> autos    = new List <Automobile>();
        SortedList        headers  = new SortedList();

        using (ResXResourceReader resxReader = new ResXResourceReader(resxFile))
        {
            foreach (DictionaryEntry entry in resxReader)
            {
                if (((string)entry.Key).StartsWith("EarlyAuto"))
                {
                    autos.Add((Automobile)entry.Value);
                }
                else if (((string)entry.Key).StartsWith("Header"))
                {
                    headers.Add((string)entry.Key, (string)entry.Value);
                }
            }
        }
        string[] headerColumns = new string[headers.Count];
        headers.GetValueList().CopyTo(headerColumns, 0);
        Console.WriteLine("{0,-8} {1,-10} {2,-4}   {3,-5}   {4,-9}\n",
                          headerColumns);
        foreach (var auto in autos)
        {
            Console.WriteLine("{0,-8} {1,-10} {2,4}   {3,5}   {4,9}",
                              auto.Make, auto.Model, auto.Year,
                              auto.Doors, auto.Cylinders);
        }
    }
예제 #29
0
 public void Load(string FileName)
 {
     if (File.Exists(Localization.PathFolder + FileName + ".resx"))
     {
         if (new ResXResourceSet(Localization.PathFolder + FileName + ".resx").GetString("version") == Localization.Version)
         {
             using (ResXResourceReader resXresourceReader = new ResXResourceReader(Localization.PathFolder + FileName + ".resx"))
             {
                 foreach (DictionaryEntry dictionaryEntry in resXresourceReader)
                 {
                     this.m_sentences.Add((string)dictionaryEntry.Key, (string)dictionaryEntry.Value);
                 }
             }
         }
         else
         {
             Log.Instance.Info("Your localization file is not updated ! Please download the lastest version on our github page. English language loading...");
             Localization.CreateDefault();
             this.Load("En");
         }
     }
     else
     {
         Log.Instance.Info("No localization file detected ! English language loading...");
         Localization.CreateDefault();
         this.Load("En");
     }
 }
예제 #30
0
        public override IEnumerable <ILocalizationUnit> Parse()
        {
            foreach (var path in resx_paths)
            {
                var reader = new ResXResourceReader(path)
                {
                    UseResXDataNodes = true
                };

                foreach (DictionaryEntry item in reader)
                {
                    var name             = (string)item.Key;
                    var node             = (ResXDataNode)item.Value;
                    var localized_string = new LocalizedString {
                        Name = name,
                        DeveloperComments         = node.Comment,
                        UntranslatedSingularValue = name,
                        TranslatedValues          = new string [] { (string)node.GetValue(null as ITypeResolutionService) }
                    };

                    for (int i = 0; i < localized_string.TranslatedValues.Length; i++)
                    {
                        var s = localized_string.TranslatedValues [i];
                        s = s.Replace("\r", "");
                        localized_string.TranslatedValues[i] = s;
                    }

                    yield return(localized_string);
                }
            }

            yield break;
        }
예제 #31
0
        private void lenguaje(string Idioma)
        {
            ResXResourceReader rsxr = new ResXResourceReader(@".\" + Idioma + ".resx");

            // Iterate through the resources and display the contents to the console.
            foreach (DictionaryEntry d in rsxr)
            {
                foreach (Control x in ctrl)
                {
                    if (x.Tag.ToString() == d.Key.ToString())
                    {
                        var ctn = this.Controls.Find(x.Name, true);

                        try
                        {
                            foreach (Control c in ctn)
                            {
                                c.Text = d.Value.ToString();
                            }
                        }
                        catch (Exception)
                        {
                        }
                    }
                }
            }
        }
예제 #32
0
 protected void cmbResources_SelectedIndexChanged(object sender, EventArgs e)
 {
     if (cmbResources.SelectedIndex != 0)
     {
         panelUpdate.Visible = false;
         string filename = Request.PhysicalApplicationPath + "App_GlobalResources\\" + cmbResources.SelectedItem.Text;
         Stream stream = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.Read);
         ResXResourceReader RrX = new ResXResourceReader(stream);
         IDictionaryEnumerator RrEn = RrX.GetEnumerator();
         SortedList slist = new SortedList();
         while (RrEn.MoveNext())
         {
             slist.Add(RrEn.Key, RrEn.Value);
         }
         RrX.Close();
         stream.Dispose();
         gridView1.DataSource = slist;
         gridView1.DataBind();
     }
 }
예제 #33
0
파일: resource.cs 프로젝트: dbremner/hycs
    static void Main(string[] args)
    {
        string resXFile = "test.resx";
        string resKey = "myKey";
        string resValueFile = "myValue";

        using (ResXResourceWriter writer = new ResXResourceWriter(resXFile))
        {
            Console.WriteLine("Associating {0} with {1}'s contents", resKey, resValueFile);
            Console.Write("To {0}...", resXFile);

            using (ResXResourceReader reader = new ResXResourceReader(resXFile))
            {
                foreach (DictionaryEntry node in reader)
                    writer.AddResource((string)node.Key, node.Value);
            }

            writer.AddResource(resKey, File.ReadAllBytes(resValueFile));
        }
    }
예제 #34
0
	private Dictionary<string,string> LoadResxFile (string file)
	{
		var dictionary = new Dictionary<string,string> ();
		
		try {
			using (ResXResourceReader resxReader = new ResXResourceReader(file)) {
				foreach (DictionaryEntry entry in resxReader) {
					dictionary.Add ((string) entry.Key, (string) entry.Value);
				}
			}
		}
		catch {
			return null;
		}

		return dictionary;
	}
예제 #35
0
    private void GetData(bool QueryReturn, int packageCount, bool reload)
    {
        if (reload)
        {
            this.gridView.PageIndex = 0;
        }
        if (this.DBAlias != "" && this.CommandText != "")
        {
            DataSet tempDs = new DataSet();
            string where = "";
            if (this.WhereItem != "")
            {
                where = this.WhereItem;
            }
            if (QueryReturn && this.QueryCondition.Trim() != "")
            {
                if (where != "")
                {
                    where += " and " + this.QueryCondition;
                }
                else
                {
                    where += this.QueryCondition;
                }
            }
            string strSql = this.CommandText;
            if (where != "")
            {
                strSql = CliUtils.InsertWhere(strSql, where);
            }
            if(!string.IsNullOrEmpty(this.TypeAhead) && this.TypeAhead.EndsWith("?"))
            {
                string ta = this.TypeAhead.Substring(0, this.TypeAhead.Length - 1);
                strSql = CliUtils.InsertWhere(strSql, string.Format("{0} like '{1}%'", this.ValueField, ta));
            }

            int lastIndex = (packageCount - 1) * this.PacketRecords - 1;
            tempDs = CliUtils.ExecuteSql("GLModule", "cmdRefValUse", strSql, "", true, CliUtils.fCurrentProject, new object[] { this.PacketRecords, lastIndex });

            if (this.ViewState["WebDataSet"] != null && lastIndex != -1 && PacketRecords != -1)
            {
                ((DataSet)this.ViewState["WebDataSet"]).Merge(tempDs);
            }
            else
            {
                this.ViewState["WebDataSet"] = tempDs;
            }
        }
        else
        {
            #region CreateWebDataSet
            XmlDocument xmlDoc = new XmlDocument();
            string resourceName = this.Resx;
            ResXResourceReader reader = new ResXResourceReader(resourceName);
            IDictionaryEnumerator enumerator = reader.GetEnumerator();
            while (enumerator.MoveNext())
            {
                if (enumerator.Key.ToString() == "WebDataSets")
                {
                    string sXml = (string)enumerator.Value;
                    xmlDoc.LoadXml(sXml);
                    break;
                }
            }
            if (xmlDoc != null)
            {
                XmlNode nWDSs = xmlDoc.SelectSingleNode("WebDataSets");
                if (nWDSs != null)
                {
                    string webDataSetID = this.SourceDataSet;
                    XmlNode nWDS = nWDSs.SelectSingleNode("WebDataSet[@Name='" + webDataSetID + "']");
                    if (nWDS != null)
                    {
                        string remoteName = "";
                        int packetRecords = 100;
                        bool active = false;
                        bool serverModify = false;

                        XmlNode nRemoteName = nWDS.SelectSingleNode("RemoteName");
                        if (nRemoteName != null)
                            remoteName = nRemoteName.InnerText;

                        XmlNode nPacketRecords = nWDS.SelectSingleNode("PacketRecords");
                        if (nPacketRecords != null)
                            packetRecords = nPacketRecords.InnerText.Length == 0 ? 100 : Convert.ToInt32(nPacketRecords.InnerText);

                        XmlNode nActive = nWDS.SelectSingleNode("Active");
                        if (nActive != null)
                            active = nActive.InnerText.Length == 0 ? false : Convert.ToBoolean(nActive.InnerText);

                        XmlNode nServerModify = nWDS.SelectSingleNode("ServerModify");
                        if (nServerModify != null)
                            serverModify = nServerModify.InnerText.Length == 0 ? false : Convert.ToBoolean(nServerModify.InnerText);

                        wds.RemoteName = remoteName;
                        if (remoteName.IndexOf('.') != -1)
                        {
                            this.PackageName = remoteName.Split('.')[0];
                            this.InfoCommandName = remoteName.Split('.')[1];
                        }
                        wds.PacketRecords = packetRecords;
                        wds.ServerModify = serverModify;
                        this.PacketRecords = packetRecords;
                        string where = "";
                        if (QueryReturn && this.QueryCondition.Trim() != "")
                        {
                            if (this.WhereItem != "")
                                where = this.WhereItem + " and " + this.QueryCondition;
                            else
                                where = this.QueryCondition;
                        }
                        else
                        {
                            if (this.WhereItem != "")
                                where = this.WhereItem;
                        }
                        if (!string.IsNullOrEmpty(this.TypeAhead) && this.TypeAhead.EndsWith("?"))
                        {
                            string ta = this.TypeAhead.Substring(0, this.TypeAhead.Length - 1);
                            if (where != "")
                            {
                                where += string.Format(" and {0} like '{1}%'", this.ValueField, ta);
                            }
                            else
                            {
                                where = string.Format(" {0} like '{1}%'", this.ValueField, ta); ;
                            }
                        }
                        if (where != "")
                        {
                            wds.SetWhere(where);
                        }

                        wds.Active = true;
                        if (packageCount > 1)
                        {
                            for (int i = 1; i < packageCount; i++)
                            {
                                if (!wds.GetNextPacket())
                                {
                                    break;
                                }
                            }
                        }
                        this.ViewState["WebDataSet"] = wds.RealDataSet;
                    }
                }
            }
            #endregion
        }

        if (this.Columns == "")
        {
            this.gridView.AutoGenerateColumns = true;
        }
        else
        {
            this.gridView.AutoGenerateColumns = false;
            if ((this.gridView.Columns[0] is TemplateField && this.gridView.Columns.Count == 1)
                || this.gridView.Columns.Count == 0)
            {
                List<string> colName = new List<string>();
                List<string> headText = new List<string>();
                List<int> width = new List<int>();
                string[] columns = this.Columns.Split(';');
                int i = columns.Length;
                for (int j = 0; j < i; j++)
                {
                    string[] colparams = columns[j].Split(',');
                    if (colparams.Length > 3)
                    {
                        colName.Add(colparams[0]);
                        headText.Add(colparams[1]);
                        width.Add(Convert.ToInt32(colparams[2]));
                    }
                }
                int m = colName.Count;
                for (int n = 0; n < m; n++)
                {
                    BoundField field = new BoundField();
                    field.DataField = colName[n];
                    field.HeaderText = headText[n];
                    field.HeaderStyle.Width = width[n];
                    this.gridView.Columns.Add(field);
                }
            }
        }
        this.gridView.DataSource = (DataSet)this.ViewState["WebDataSet"];
        this.gridView.DataMember = ((DataSet)this.ViewState["WebDataSet"]).Tables[0].TableName;
        this.gridView.DataBind();

        // get dd...
        string CaptionNum = "CAPTION";
        if (string.Compare(MultiLan, "true", true) == 0)//IgnoreCase
        {
            switch (CliUtils.fClientLang)
            {
                case SYS_LANGUAGE.ENG:
                    CaptionNum = "CAPTION1"; break;
                case SYS_LANGUAGE.TRA:
                    CaptionNum = "CAPTION2"; break;
                case SYS_LANGUAGE.SIM:
                    CaptionNum = "CAPTION3"; break;
                case SYS_LANGUAGE.HKG:
                    CaptionNum = "CAPTION4"; break;
                case SYS_LANGUAGE.JPN:
                    CaptionNum = "CAPTION5"; break;
                case SYS_LANGUAGE.LAN1:
                    CaptionNum = "CAPTION6"; break;
                case SYS_LANGUAGE.LAN2:
                    CaptionNum = "CAPTION7"; break;
                case SYS_LANGUAGE.LAN3:
                    CaptionNum = "CAPTION8"; break;
            }
        }
        DataSet ds = GetDD();
        if (ds.Tables.Count != 0 && this.gridView.HeaderRow != null)
        {
            foreach (TableCell cell in this.gridView.HeaderRow.Cells)
            {
                if (cell.Text != null && cell.Text != "")
                {
                    int x = ds.Tables[0].Rows.Count;
                    for (int y = 0; y < x; y++)
                    {
                        if (string.Compare(ds.Tables[0].Rows[y]["FIELD_NAME"].ToString(), cell.Text, true) == 0//IgnoreCase
                            && ds.Tables[0].Rows[y][CaptionNum].ToString() != "")
                        {
                            cell.Text = ds.Tables[0].Rows[y][CaptionNum].ToString();
                        }
                    }
                }
            }
        }

        //Save HeadTexts
        HeadTexts = "";
        foreach (DataColumn field in ((DataSet)this.ViewState["WebDataSet"]).Tables[0].Columns)
        {
            bool ddFound = false;
            foreach (DataRow row in ds.Tables[0].Rows)
            {
                if (string.Compare(field.ColumnName, row["FIELD_NAME"].ToString(), true) == 0//IgnoreCase
                    && row[CaptionNum] != null && row[CaptionNum].ToString() != "")
                {
                    HeadTexts += row[CaptionNum].ToString() + ";";
                    ddFound = true;
                    break;
                }
            }
            if (!ddFound)
            {
                HeadTexts += field.ColumnName + ";";
            }
        }
    }
예제 #36
0
 private string GetRemoteName(string filePath, string webDataSetID)
 {
     string Rem = "";
     XmlDocument xmlDoc = new XmlDocument();
     string resxFile = string.IsNullOrEmpty(Resx) ? GetResxFile(filePath) : Resx;
     ResXResourceReader reader = new ResXResourceReader(resxFile);
     IDictionaryEnumerator enumerator = reader.GetEnumerator();
     while (enumerator.MoveNext())
     {
         if (enumerator.Key.ToString() == "WebDataSets")
         {
             string sXml = (string)enumerator.Value;
             xmlDoc.LoadXml(sXml);
             break;
         }
     }
     if (xmlDoc != null)
     {
         XmlNode nWDSs = xmlDoc.SelectSingleNode("WebDataSets");
         if (nWDSs != null)
         {
             XmlNode nWDS = nWDSs.SelectSingleNode("WebDataSet[@Name='" + webDataSetID + "']");
             if (nWDS != null)
             {
                 XmlNode nRemoteName = nWDS.SelectSingleNode("RemoteName");
                 if (nRemoteName != null)
                     Rem = nRemoteName.InnerText;
             }
         }
     }
     return Rem;
 }
예제 #37
0
    /// <remarks>
    /// Builds ResAsm files out of resource files
    /// </remarks>
    static void Disassemble(string pattern)
    {
        string[] files = Directory.GetFiles(Directory.GetCurrentDirectory(), pattern);
        foreach (string file in files) {

            Hashtable resources = new Hashtable();
            int       length    = 0;
            // read resource files into the hashtable
            switch (Path.GetExtension(file).ToUpper()) {
                case ".RESX":
                    ResXResourceReader rx = new ResXResourceReader(file);
                    IDictionaryEnumerator n = rx.GetEnumerator();
                    while (n.MoveNext())
                        if (!resources.ContainsKey(n.Key)) {
                            length = Math.Max(length, n.Key.ToString().Length);
                            resources.Add(n.Key, n.Value);
                        }

                    rx.Close();
                break;
                case ".RESOURCES":
                    ResourceReader rr = new ResourceReader(file);
                    foreach (DictionaryEntry entry in rr) {
                        if (!resources.ContainsKey(entry.Key)) {
                            length = Math.Max(length, entry.Key.ToString().Length);
                            resources.Add(entry.Key, entry.Value);
                        }
                    }
                    rr.Close();
                break;
            }

            // write the hashtable to the resource file
            string fname  = Path.GetFileNameWithoutExtension(file);
            string path   = fname + "-data";
            StreamWriter writer = File.CreateText(fname + ".res");

            writer.Write("# this file was automatically generated by ResAsm\r\n\r\n");
            foreach (DictionaryEntry entry in resources) {
                // strings are put directly into the resasm format
                if (entry.Value is string) {
                    writer.Write(entry.Key.ToString() + "=\"" + ConvertIllegalChars(entry.Value.ToString()) + "\"\r\n");
                } else {
                    // all other files are referenced as a file and the filename
                    // is saved in the resasm format, the files need to be generated.
                    string extension  = "";
                    string outputname = path + '\\' + entry.Key.ToString();
                    if (entry.Value is Icon) {
                        extension = ".ico";
                        if (!Directory.Exists(path))
                            Directory.CreateDirectory(path);
                        ((Icon)entry.Value).Save(File.Create(outputname + extension));
                    } else if (entry.Value is Image) {
                        // all bitmaps are saved in the png format
                        extension = ".png";
                        if (!Directory.Exists(path))
                            Directory.CreateDirectory(path);
                        ((Image)entry.Value).Save(outputname + extension, ImageFormat.Png);
                    } else {
                        Console.WriteLine("can't save " + entry.Key + " unknown format.");
                        continue;
                    }
                    writer.Write(entry.Key.ToString().PadRight(length) + " = " + outputname + extension + "\r\n");
                }
            }
            writer.Close();
        }
    }
예제 #38
0
    private void CreatDataSet(string[] datasetid)
    {
        int datasetnum = 0;

        foreach (string strdsid in datasetid)
        {
            if (strdsid != string.Empty)
            {
                datasetnum++;
            }
        }
        if (datasetnum > 0)
        {
            refValDateSet = new WebDataSet[datasetnum];
            refValDateSource = new WebDataSource[datasetnum];
            int intcount = 0;

            for (int i = 0; i < datasetid.Length; i++)
            {
                if (datasetid[i] != string.Empty && (!lstDataSetID.Contains(datasetid[i])))
                {
                    #region Create WebDataSet & WebDataSource
                    XmlDocument xmlDoc = new XmlDocument();
                    string resourceName = psyPath + ".vi-VN.resx";
                    ResXResourceReader reader = new ResXResourceReader(resourceName);

                    IDictionaryEnumerator enumerator = reader.GetEnumerator();
                    while (enumerator.MoveNext())
                    {
                        if (enumerator.Key.ToString() == "WebDataSets")
                        {
                            string sXml = (string)enumerator.Value;
                            xmlDoc.LoadXml(sXml);
                            break;
                        }
                    }
                    if (xmlDoc != null)
                    {
                        XmlNode nWDSs = xmlDoc.SelectSingleNode("WebDataSets");
                        if (nWDSs != null)
                        {
                            XmlNode nWDS = nWDSs.SelectSingleNode("WebDataSet[@Name='" + datasetid[i] + "']");
                            if (nWDS != null)
                            {
                                string remoteName = "";
                                int packetRecords = 100;
                                bool active = false;
                                bool serverModify = false;

                                XmlNode nRemoteName = nWDS.SelectSingleNode("RemoteName");
                                if (nRemoteName != null)
                                    remoteName = nRemoteName.InnerText;

                                XmlNode nPacketRecords = nWDS.SelectSingleNode("PacketRecords");
                                if (nPacketRecords != null)
                                    packetRecords = nPacketRecords.InnerText.Length == 0 ? 100 : Convert.ToInt32(nPacketRecords.InnerText);

                                XmlNode nActive = nWDS.SelectSingleNode("Active");
                                if (nActive != null)
                                    active = nActive.InnerText.Length == 0 ? false : Convert.ToBoolean(nActive.InnerText);

                                XmlNode nServerModify = nWDS.SelectSingleNode("ServerModify");
                                if (nServerModify != null)
                                    serverModify = nServerModify.InnerText.Length == 0 ? false : Convert.ToBoolean(nServerModify.InnerText);

                                WebDataSet wds = new WebDataSet();
                                wds.RemoteName = remoteName;
                                wds.PacketRecords = packetRecords;
                                wds.ServerModify = serverModify;
                                wds.Active = true;

                                refValDateSet[intcount] = wds;

                                refValDateSource[intcount] = new WebDataSource();
                                refValDateSource[intcount].DataSource = refValDateSet[intcount];
                                refValDateSource[intcount].DataMember = arrRefValDM[i];
                                refValDateSource[intcount].ID = "refvalds" + intcount.ToString(); ;

                                this.Form.Controls.Add(refValDateSource[intcount]);
                                intcount++;
                                lstDataSetID.Add(datasetid[i]);
                            }
                        }
                    }
                    #endregion
                }
            }
        }
    }
예제 #39
0
    private void CreatDataSet(string datasetid)
    {
        XmlDocument xmlDoc = new XmlDocument();
        string resourceName = psyPath + ".vi-VN.resx";
        ResXResourceReader reader = new ResXResourceReader(resourceName);
        IDictionaryEnumerator enumerator = reader.GetEnumerator();
        while (enumerator.MoveNext())
        {
            if (enumerator.Key.ToString() == "WebDataSets")
            {
                string sXml = (string)enumerator.Value;
                xmlDoc.LoadXml(sXml);
                break;
            }
        }
        if (xmlDoc != null)
        {
            XmlNode nWDSs = xmlDoc.SelectSingleNode("WebDataSets");
            if (nWDSs != null)
            {
                XmlNode nWDS = nWDSs.SelectSingleNode("WebDataSet[@Name='" + datasetid + "']");
                if (nWDS != null)
                {
                    string remoteName = "";
                    int packetRecords = 100;
                    bool active = false;
                    bool serverModify = false;

                    XmlNode nRemoteName = nWDS.SelectSingleNode("RemoteName");
                    if (nRemoteName != null)
                        remoteName = nRemoteName.InnerText;

                    XmlNode nPacketRecords = nWDS.SelectSingleNode("PacketRecords");
                    if (nPacketRecords != null)
                        packetRecords = nPacketRecords.InnerText.Length == 0 ? 100 : Convert.ToInt32(nPacketRecords.InnerText);

                    XmlNode nActive = nWDS.SelectSingleNode("Active");
                    if (nActive != null)
                        active = nActive.InnerText.Length == 0 ? false : Convert.ToBoolean(nActive.InnerText);

                    XmlNode nServerModify = nWDS.SelectSingleNode("ServerModify");
                    if (nServerModify != null)
                        serverModify = nServerModify.InnerText.Length == 0 ? false : Convert.ToBoolean(nServerModify.InnerText);

                    WebDataSet wds = new WebDataSet();
                    wds.RemoteName = remoteName;
                    wds.PacketRecords = packetRecords;
                    wds.ServerModify = serverModify;
                    wds.Active = true;

                    dt = wds.RealDataSet.Tables[dataMember];
                    int rowcount = dt.Rows.Count;
                    lstnode = new ListItem[rowcount];
                    for (int i = 0; i < rowcount; i++)
                    {
                        lstnode[i] = new ListItem();
                        lstnode[i].Text = dt.Rows[i][strTextField].ToString();
                        lstnode[i].Value = dt.Rows[i][strKeyField].ToString();
                        lstkey.Add(dt.Rows[i][strKeyField]);
                    }
                }
            }
        }
    }
예제 #40
0
    private void CreatDataSet(object datasetid)
    {
        XmlDocument xmlDoc = new XmlDocument();
        string resourceName = psyPath + ".vi-VN.resx";
        ResXResourceReader reader = new ResXResourceReader(resourceName);
        IDictionaryEnumerator enumerator = reader.GetEnumerator();
        while (enumerator.MoveNext())
        {
            if (enumerator.Key.ToString() == "WebDataSets")
            {
                string sXml = (string)enumerator.Value;
                xmlDoc.LoadXml(sXml);
                break;
            }
        }
        if (xmlDoc != null)
        {
            XmlNode nWDSs = xmlDoc.SelectSingleNode("WebDataSets");
            if (nWDSs != null)
            {
                XmlNode nWDS = nWDSs.SelectSingleNode("WebDataSet[@Name='" + datasetid + "']");
                if (nWDS != null)
                {
                    string remoteName = "";
                    int packetRecords = 100;
                    bool active = false;
                    bool serverModify = false;

                    XmlNode nRemoteName = nWDS.SelectSingleNode("RemoteName");
                    if (nRemoteName != null)
                        remoteName = nRemoteName.InnerText;

                    XmlNode nPacketRecords = nWDS.SelectSingleNode("PacketRecords");
                    if (nPacketRecords != null)
                        packetRecords = nPacketRecords.InnerText.Length == 0 ? 100 : Convert.ToInt32(nPacketRecords.InnerText);

                    XmlNode nActive = nWDS.SelectSingleNode("Active");
                    if (nActive != null)
                        active = nActive.InnerText.Length == 0 ? false : Convert.ToBoolean(nActive.InnerText);

                    XmlNode nServerModify = nWDS.SelectSingleNode("ServerModify");
                    if (nServerModify != null)
                        serverModify = nServerModify.InnerText.Length == 0 ? false : Convert.ToBoolean(nServerModify.InnerText);

                    WebDataSet wds = new WebDataSet();
                    wds.RemoteName = remoteName;
                    wds.PacketRecords = packetRecords;
                    wds.ServerModify = serverModify;
                    wds.Active = true;

                    wdsDay = wds;
                    if (strWhere != string.Empty)
                    {
                        wdsDay.SetWhere(strWhere);
                    }

                }
            }
        }
    }
    /// <summary>
    /// Open a ResX file and extract it's data.
    /// </summary>
    /// <param name="filename"></param>
    /// <returns></returns>
    protected Dictionary<string, string> ReadResX(string filename)
    {
        Dictionary<string, string> extracted = new Dictionary<string, string>();

        try
        {
            using (ResXResourceReader reader = new ResXResourceReader(filename))
            {
                foreach (DictionaryEntry entry in reader)
                    extracted.Add((string)entry.Key, (string)entry.Value);
            }
        }
        catch (Exception ex) { throw ex; }

        return extracted;
    }
예제 #42
0
    private void GetData(string filter)
    {
        #region CreateWebDataSet
        XmlDocument xmlDoc = new XmlDocument();
        string resourceName = this.ViewState["ResxPath"].ToString();
        ResXResourceReader reader = new ResXResourceReader(resourceName);
        IDictionaryEnumerator enumerator = reader.GetEnumerator();
        while (enumerator.MoveNext())
        {
            if (enumerator.Key.ToString() == "WebDataSets")
            {
                string sXml = (string)enumerator.Value;
                xmlDoc.LoadXml(sXml);
                break;
            }
        }
        if (xmlDoc != null)
        {
            XmlNode nWDSs = xmlDoc.SelectSingleNode("WebDataSets");
            if (nWDSs != null)
            {
                string webDataSetID = this.ViewState["DataSet"].ToString();
                XmlNode nWDS = nWDSs.SelectSingleNode("WebDataSet[@Name='" + webDataSetID + "']");
                if (nWDS != null)
                {
                    string remoteName = "";
                    bool active = false;
                    bool serverModify = false;

                    XmlNode nRemoteName = nWDS.SelectSingleNode("RemoteName");
                    if (nRemoteName != null)
                        remoteName = nRemoteName.InnerText;

                    XmlNode nActive = nWDS.SelectSingleNode("Active");
                    if (nActive != null)
                        active = nActive.InnerText.Length == 0 ? false : Convert.ToBoolean(nActive.InnerText);

                    XmlNode nServerModify = nWDS.SelectSingleNode("ServerModify");
                    if (nServerModify != null)
                        serverModify = nServerModify.InnerText.Length == 0 ? false : Convert.ToBoolean(nServerModify.InnerText);

                    wds.RemoteName = remoteName;
                    this.ViewState["RemoteName"] = remoteName;
                    wds.PacketRecords = -1;
                    wds.ServerModify = serverModify;
                    if (Request.QueryString["WhereStr"] != null)
                    {
                        wds.WhereStr = Request.QueryString["WhereStr"];
                    }
                    if (!string.IsNullOrEmpty(filter))
                    {
                        if (string.IsNullOrEmpty(wds.WhereStr))
                        {
                            wds.WhereStr = filter;
                        }
                        else
                        {
                            wds.WhereStr += string.Format(" and {0}", filter);
                        }
                    }
                    wds.Active = true;
                    this.ViewState["WebDataSet"] = wds.RealDataSet;

                    //绑定list
                    this.ListBox1.DataSource = (DataSet)this.ViewState["WebDataSet"];
                    this.ListBox1.DataMember = ((DataSet)this.ViewState["WebDataSet"]).Tables[0].TableName;
                    this.ListBox1.DataTextField = this.ViewState["TextField"].ToString();
                    this.ListBox1.DataValueField = this.ViewState["ValueField"].ToString();

                    this.ListBox1.DataBind();

                    if (this.ViewState["Value"] != null && this.ViewState["Value"].ToString() != ""
                        && this.ViewState["Separator"] != null && this.ViewState["Separator"].ToString() != "")
                    {
                        string value = this.ViewState["Value"].ToString();
                        char sepa = this.ViewState["Separator"].ToString()[0];
                        string[] lstValues = value.Split(sepa);
                        List<ListItem> selItem = new List<ListItem>();
                        foreach (string val in lstValues)
                        {
                            ListItem item = this.ListBox1.Items.FindByValue(val);
                            if (item != null)
                            {
                                selItem.Add(item);
                                this.ListBox1.Items.Remove(item);
                            }
                        }

                        foreach (ListItem item in selItem)
                        {
                            this.ListBox2.Items.Add(item);
                        }
                    }
                }
                else
                {
                    string sql = this.ViewState["SelectCommand"].ToString();
                    if (!string.IsNullOrEmpty(filter))
                    {
                        sql = CliUtils.InsertWhere(sql, filter);
                    }
                    DataSet temp = CliUtils.ExecuteSql("GLModule", "cmdRefValUse", sql, true, CliUtils.fCurrentProject);
                    this.ListBox1.DataSource = temp;
                    this.ListBox1.DataMember = temp.Tables[0].TableName;
                    this.ListBox1.DataTextField = this.ViewState["TextField"].ToString();
                    this.ListBox1.DataValueField = this.ViewState["ValueField"].ToString();
                    this.ListBox1.DataBind();

                    if (this.ViewState["Value"] != null && this.ViewState["Value"].ToString() != ""
                        && this.ViewState["Separator"] != null && this.ViewState["Separator"].ToString() != "")
                    {
                        string value = this.ViewState["Value"].ToString();
                        char sepa = this.ViewState["Separator"].ToString()[0];
                        string[] lstValues = value.Split(sepa);
                        List<ListItem> selItem = new List<ListItem>();
                        foreach (string val in lstValues)
                        {
                            ListItem item = this.ListBox1.Items.FindByValue(val);
                            if (item != null)
                            {
                                selItem.Add(item);
                                this.ListBox1.Items.Remove(item);
                            }
                        }

                        foreach (ListItem item in selItem)
                        {
                            this.ListBox2.Items.Add(item);
                        }
                    }
                }
            }
        }
        #endregion
    }
예제 #43
0
파일: resx2sr.cs 프로젝트: BrzVlad/mono
	static bool LoadStrings (List<Tuple<string, string, string>> resourcesStrings, List<string> files)
	{
		var keys = new Dictionary<string, string> ();
		foreach (var fileName in files) {
			if (!File.Exists (fileName)) {
				Console.Error.WriteLine ($"Error reading resource file '{fileName}'");
				return false;
			}

			var rr = new ResXResourceReader (fileName);
			rr.UseResXDataNodes = true;
			var dict = rr.GetEnumerator ();
			while (dict.MoveNext ()) {
				var node = (ResXDataNode)dict.Value;

				resourcesStrings.Add (Tuple.Create (node.Name, (string) node.GetValue ((ITypeResolutionService)null), node.Comment));				
			}
		}

		return true;
	}
예제 #44
0
    private void CreatDataSet(String datasetid)
    {
        wdAnyQuery = new WebDataSet();
        wdsAnyQuery = new WebDataSource();

        if (datasetid != string.Empty && (!lstDataSetID.Contains(datasetid)))
        {
            #region Create WebDataSet & WebDataSource
            XmlDocument xmlDoc = new XmlDocument();
            string resourceName = psyPagePath + ".vi-VN.resx";
            ResXResourceReader reader = new ResXResourceReader(resourceName);

            IDictionaryEnumerator enumerator = reader.GetEnumerator();
            while (enumerator.MoveNext())
            {
                if (enumerator.Key.ToString() == "WebDataSets")
                {
                    string sXml = (string)enumerator.Value;
                    xmlDoc.LoadXml(sXml);
                    break;
                }
            }
            if (xmlDoc != null)
            {
                XmlNode nWDSs = xmlDoc.SelectSingleNode("WebDataSets");
                if (nWDSs != null)
                {
                    XmlNode nWDS = nWDSs.SelectSingleNode("WebDataSet[@Name='" + datasetid + "']");
                    if (nWDS != null)
                    {
                        string remoteName = "";
                        int packetRecords = 100;
                        bool active = false;
                        bool serverModify = false;

                        XmlNode nRemoteName = nWDS.SelectSingleNode("RemoteName");
                        if (nRemoteName != null)
                            remoteName = nRemoteName.InnerText;

                        XmlNode nPacketRecords = nWDS.SelectSingleNode("PacketRecords");
                        if (nPacketRecords != null)
                            packetRecords = nPacketRecords.InnerText.Length == 0 ? 100 : Convert.ToInt32(nPacketRecords.InnerText);

                        XmlNode nActive = nWDS.SelectSingleNode("Active");
                        if (nActive != null)
                            active = nActive.InnerText.Length == 0 ? false : Convert.ToBoolean(nActive.InnerText);

                        XmlNode nServerModify = nWDS.SelectSingleNode("ServerModify");
                        if (nServerModify != null)
                            serverModify = nServerModify.InnerText.Length == 0 ? false : Convert.ToBoolean(nServerModify.InnerText);

                        wdAnyQuery.RemoteName = remoteName;
                        wdAnyQuery.PacketRecords = packetRecords;
                        wdAnyQuery.ServerModify = serverModify;
                        wdAnyQuery.Active = true;

                        wdsAnyQuery = new WebDataSource();
                        wdsAnyQuery.ID = "webanyqueryds";
                        wdsAnyQuery.DesignDataSet = wdAnyQuery.RealDataSet;
                        wdsAnyQuery.DataMember = dataMember;

                        this.Form.Controls.Add(wdsAnyQuery);
                        //lstDataSetID.Add(datasetid);
                    }
                }
            }
            #endregion
        }
    }