Laden...
P
prakti08 myCSharp.de - Member
Werkstudent Softwareentwickler Trier Dabei seit 04.07.2008 321 Beiträge
Benutzerbeschreibung

Forenbeiträge von prakti08 Ingesamt 321 Beiträge

17.07.2008 - 13:44 Uhr

hehe^^
habs selber grade gemerkt -.-
so fehler passieren mir dauernd^^

17.07.2008 - 13:33 Uhr

wie kann man die datei überschreiben?
ist ja ein berechtigungsproblem weil noch auf die datei zugegriffen wird....
wenn ich einen neuen pfad angebe funktioniert es...

17.07.2008 - 13:24 Uhr

Hi..
hab ein programm das xml dateien in ein treeView einliest...
jetzt wollte ich einbinden, das wenn man eine spalte in der treeView anklickt.. dort ein neues element in der xml eingefügt wird... doch wenn ich nun die xml wieder speichern will kommt ein fehler...

Der Prozess kann nicht auf die Datei C:\Welt.xml zugreifen, da sie von einem anderen Prozess verwendet wird.

das programm sieht so aus..


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Xml;

namespace WindowsApplication2
{
    public partial class Form1 : Form
    {
        XmlDocument xmlDoc;
        XmlNode root, node;
        string Pfad = string.Empty;
        public Form1()
        {
            InitializeComponent();
            xmlDoc = new XmlDocument();
        }
        

        private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog1 = new OpenFileDialog();
            openFileDialog1.Filter = "xml files (*.xml)|*.xml";
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
                Pfad = openFileDialog1.FileName;
            try
            {
                xmlDoc.Load(Pfad);
                root = xmlDoc.DocumentElement;
            }
            catch 
            {
                MessageBox.Show("Datei nicht lesbar");
                return;
            }
            treeView1.Nodes.Clear();
            ShowNode(null,Pfad);
            treeView1.Nodes[0].ExpandAll();

        }

        private void ShowNode(TreeNode parent,string pfad)
        {
            TreeNode tn = parent;
            XmlReaderSettings myset = new XmlReaderSettings();
            myset.IgnoreWhitespace = true;
            XmlReader xr = XmlReader.Create(pfad, myset);
            while (xr.Read())
            {
                if (xr.NodeType == XmlNodeType.EndElement)
                    tn = tn.Parent;
                else 
                {
                    if (xr.NodeType == XmlNodeType.Element)
                    {
                        if (tn == null)
                            tn = treeView1.Nodes.Add(xr.Name);
                        else
                            tn = tn.Nodes.Add(xr.Name);
                    }
                    if (xr.NodeType == XmlNodeType.Text)
                    {
                        tn.Text = tn.Text + ": " + xr.Value;
                    }
                }
            }
        }
        private void test(object sender, TreeNodeMouseClickEventArgs e)
        {  
        Form2 dialog = new Form2();
        if (dialog.ShowDialog() == DialogResult.OK)
        {
            node = root.SelectSingleNode (e.Node.FullPath.Substring (e.Node.FullPath.IndexOf ('\\')+1).Replace ('\\','/'));
            node.AppendChild(xmlDoc.CreateElement("Hund")).InnerText = "123";
            treeView1.Nodes.Clear();
            xmlDoc.Save(Pfad);     <<<<<<<<< hier ist der fehler
            ShowNode(null, Pfad);
            treeView1.Nodes[0].ExpandAll();
            
        }
        
        }


    }
}

16.07.2008 - 16:09 Uhr

ah.. ok.. dankeschön^^
hab die ganze zeit versucht über treeView1.SelectedNode drauf zuzugreifen...
ist so ja noch viel besser 🙂

16.07.2008 - 16:02 Uhr

hi
habe ne xml datei eingelesen und als treeView ausgegeben...
wollte jetzt nach einem mausklick auf ein element das dieses als text ausgegeben wird...

bsp:


- Kontinent
   - Europa
        Fläche: 10500000 
        Einwohner: 718500000 

wenn ich jetzt auf einwohner klicke soll "Einwohner: 718500000" ausgegeben werden

das event ist übrigens schon fertig.. möchte nur wissen wie ich auf den text zurgreifen kann...

danke für eure hilfe

10.07.2008 - 14:53 Uhr

ok.. soweit hab ich nicht gedacht.. mal gucken obs klappt....

hätte jetzt auch '%09' getippt oder sowas...

10.07.2008 - 14:49 Uhr

ich....
hab nen string in dem mehrere ' in verbindung mit , vorkommen....
es kommen auch noch mehrere ' oder , ohne verbindung zueinander drin vor...
jetzt möchte ich diese , durch tab ersetzen wenn sie in verbindung mit ' vorkommen....
wie kann ich das anstellen....


string zeile="' asdf','adf'jkll','adsf','asd,asd' "
zeile.Replace("\',\'","\'(Hier soll Tab hin)\'");

09.07.2008 - 15:01 Uhr

naja...
wollte mich mal bedanken für die lösungsvorschläge 🙂
hat mir weitergeholfen...
und die geschichte mit der kuchenteilung ist auch interessant....

09.07.2008 - 12:11 Uhr

da kann ich ja gleich goto verwenden 😄
Wollt ihr mich heut auf den Arm nehmen? Woanders meint jemand von Form wegen IDisposable ableiten zu müssen und du redest von goto - und das als Anfänger.
Das ist Rekursion.

ups^^
sry.. nciht richtig angeguckt 🙂

09.07.2008 - 11:56 Uhr

😜
hehe
hatte grade länger nicht mehr aktuallisiert^^
meinte den befehl der ersten antwort 🙂

🙂

:
kannst du mir den befehl bitte in nem kleinen beispiel unterbringen?


System.IO.Directory.GetFiles("pfad", "*.jpg", System.IO.SearchOption.AllDirectories) 

09.07.2008 - 11:55 Uhr
private void Rename(DirectoryInfo dirInfo)  
{  
   foreach (DirectoryInfo dirInfo2 in dirInfo.GetDirectories())  
   {  
       foreach (FileInfo fileInfo in dirInfo2.GetFiles())  
       {  
           fileInfo.Rename nach dirInfo2.Name ...  
       }  
  
       // Rekursion..  
       this.Rename(dirInfo2);  
   }  
}  

hmm.. da kann ich ja gleich goto verwenden 😁

09.07.2008 - 11:51 Uhr

😜
hehe
hatte grade länger nicht mehr aktuallisiert^^
meinte den befehl der ersten antwort 🙂

09.07.2008 - 11:28 Uhr

Hi...
ich möchte ein Programm schreiben das mit nach angabe eines ordners... alle jpg dateien so benennt, wie der ordner in dem sie sind...
bsp:

c:\test\hallo

dateien

hallo_00.jpg
hallo_01.jpg

nur das es auch sein kann das es noch andere ordner darin gibt...

c:\test\hallo\du

du_00
du_01

c:\test\hallo\du\da

da_00

usw 🙂

wie kann ich das realisieren....
ich möchte nicht für jeden ordner eine neue foreach schleife durchlaufen...
geht das überhaupt?

Bisherige Umsetzung :



foreach (System.IO.DirectoryInfo directory in dir.GetDirectories())
            {   unterverzeichnis = System.IO.Path.Combine(path,directory.ToString());
                  i = 0;
                Console.WriteLine("Pfad ist {0}" , unterverzeichnis);
             
                    foreach (System.IO.FileInfo file in directory.GetFiles("*.jpg"))
                    {
                           File.Move(file.FullName, (System.IO.Path.Combine(file.DirectoryName , unterverzeichnis.Substring
                           (unterverzeichnis.LastIndexOf('\\')+ 1)+ "_" + i+".jpg")));
                           i++;
                                                    
                    }
                
            }

09.07.2008 - 07:59 Uhr

ah.. ok... dankeschön 🙂

08.07.2008 - 16:59 Uhr

hehe^^
danke...
aber habs selber rausgefunden bevor ich es hier gelesen hatte 🙂
aber habs genauso gemacht 🙂


this.dgv1.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;


pfad = dgv1.CurrentRow.Cells["Pfad"].Value.ToString() +"\\" +dgv1.CurrentRow.Cells["Name"].Value.ToString();

08.07.2008 - 16:43 Uhr

hallo

habe ein DataGridView mit daten gefüllt.
darunter zb. Pfad und Dateiname
ich möchte jetzt das wenn ich iwo auf eine row klicke, Pfad und Dateiname ausgelesen werden und zusammengeführt...
wie kann ich das anstellen?


            dgv1.CurrentRow.Cells["Pfad"].Selected = true;
            Clipboard.SetDataObject(this.dgv1.GetClipboardContent().);
            pfad = Clipboard.GetText();
            dgv1.CurrentRow.Cells["Pfad"].Selected = false;
            dgv1.CurrentRow.Cells["Name"].Selected = true;
            Clipboard.SetDataObject(this.dgv1.GetClipboardContent().);
            pfad +="\\"+Clipboard.GetText();
            dgv1.CurrentRow.Cells["Name"].Selected = false;

jetzt hab ich aber das problem das man auf der DataGridView beliebige Zellen anwählen kann die dann auch mit markiert werden...
kann mir einer sagen wie das umgangen wird?
das immer nur diese 2 zellen markiert werden`?

04.07.2008 - 12:49 Uhr

hab mich mal ein bisschen eingelesen in notificationservice...
das lass ich lieber 🙂
ich mach es jetzt erstmal auf eine billige art und weise...
bevor und nachdem ich mit meinem programm auf sql zugreife lass ich die datagrid erneuern...

04.07.2008 - 12:42 Uhr

immer wieder neu laden belastet das netz aber ganz schön...
ist im moment noch ein testprogramm.. soll aber später in ein größeres programm implementiert werden....
das wird dann probleme geben..

hatte aus testzwecken schon mit nem 2ten thread die abfrage alle 10 sekunden laufen lassen..

04.07.2008 - 11:19 Uhr

das hört sich schonmal gut an 🙂
aber auch iwie zu aufwendig... wie gesagt.. anfänger 😜

hmm.. naja... ich lass es erstmal so...
bin jetzt schon stolz auf meine leistung^^
wenn ich seh was für fragen hier gestellt werden die ich nach 3 tagen schon locker beantworten kann 😁

trotzdem danke 🙂

04.07.2008 - 11:07 Uhr

hmm.. gibt es keine möglichkeit sowas aus c# zu überwachen?

04.07.2008 - 10:57 Uhr

verwendetes Datenbanksystem: <bitte immer angeben> Microsoft Sql

Hi,
bin noch anfänger im programmieren und habe eine frage...

Ich habe ein programm in c# geschrieben das nach eingabe eines pfades alle informationen der dateien dieses ordners in einer sql datenbank auflistet.
Die Sql datenbank wird über ein DataGridView dargestellt...

Ist es möglich die DataGridView automatisch aktuallisieren zu lassen wenn sich was an der datenbank verändert hat?
Also nicht von meinem Programm aus sondern direkt an der Datenbank..

also iwie nen observer.. weiß nicht ob es in c# sowas gibt... kenne diese sprache erst seit 3 tagen

danke im voraus 🙂