none
Textdatei erstellen und an ftp-Seite senden RRS feed

  • Frage

  • Hi,

    Ich bin grad dabei eine Anwesenheits-Software zu programmieren. Die Software soll so funktionieren, dass man die Personen und das Datum auswählen kann. Wenn man auf den Senden Button klickt, soll eine Textdatei entstehen in der dann die Personen und das Datum reingeschrieben  werden. (Die Textdatei soll als Namen das Datum enthalten). Dann soll automatisch diese Textdatei an eine ftp-Seite gesendet werden. Die Anwesenheitsoftware und einen ftp-Server habe ich bereits erstellt. Nur bei den anderen Sachen weiß ich nicht weiter.

    Kann mir vielleicht jemand sagen, wie ich das am besten machen soll.

    (Wenn jemand die Anwesenheits-Software sehen will, einfach kommentar schreiben. Ich kann sie dann bei SkyDrive hochladen)

    Viele Grüße

    Marvin231

    Sonntag, 14. April 2013 16:25

Antworten

  • Guckst du hier http://dotnet-snippets.de/snippet/datei-auf-einen-ftp-uploaden/494

    Aber die bessere methode wäre tatsächlich die wcf...

    • Als Antwort markiert Marvin231 Montag, 15. April 2013 18:31
    • Tag als Antwort aufgehoben Marvin231 Montag, 15. April 2013 19:59
    • Als Antwort markiert Marvin231 Mittwoch, 17. April 2013 12:59
    • Tag als Antwort aufgehoben Marvin231 Freitag, 19. April 2013 20:19
    • Als Antwort markiert Marcel RomaModerator Donnerstag, 6. Juni 2013 04:57
    Sonntag, 14. April 2013 23:58
  • Hier ein funktionierendes Beispiel: Upload-Dateien mit FTP.

    Trenne die Aufgaben der lokalen Dateierstellung und die des Uploads. Mache also zwei Methoden daraus. Verzichte am Anfang auch mal auf try-catch, das erhöht die Lesbarkeit.

    btw, FTP-Seite ist eine Wortneuschöpfung.

    Dienstag, 16. April 2013 08:04
  • Hallo Marvin,

    können kann man vieles. Es macht aber IMHO weder Sinn, das von dir gewünschte mit Textdateien noch mit Exceldateien zu lösen.

    Arbeite mit einer Datenbank. Ob das nun SQL Server, SQL Server CE, Access oder was anderes ist, hängt von deinen genauen Anforderungen ab. Aber ich denke nicht, dass Du mit den anderen "Lösungen" glücklich wirst.

    Wenn Du zu deiner Anwendung noch eine Webanwendung hast, kannst Du die Daten ggfs. auch über Webservices hin- und hersenden.

    Was Du aber auf jeden Fall machen solltest, ist, die Datenhaltung von der (Ausgabe)Formatierung zu trennen. Es macht keinerlei Sinn, die Daten schon gleich in einem Format zu schreiben, dass eine ggfs. später notwendige Weiterverarbeitung der enthaltenen Daten unmöglich macht oder sehr erschwert.

    Wenn es gar nicht anders geht, arbeite mit Serialisierung/Deserialisierung. Ein Beispiel hierfür findest Du hier:

      http://www.aspnetzone.de/files/folders/stefanfalz/entry222489.aspx

    Das Beispiel ist zwar in VB.NET, da der Code aber recht übersichtlich ist, solltest Du das problemlos umwandeln können.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community


    Freitag, 19. April 2013 20:29
    Moderator
  • Kann mir jemand sagen, wie ich die Daten von dem Anwesenheitslisten Programm in die Datenbank bekommen

    Hi,

    Da gibt es viele Möglichkeiten:

    1. Per POST-Request an die gegenstelle übermitteln (Also genau so wie bei einem <form…>…</form> nur ohne das Formular selbst) Siehe dazu Gewusst wie: Senden Sie Daten mithilfe der WebRequest-Klasse
    2. Per GET-Request, also quasi über eine parametrisierte URL (?Parameter1=Wert1&Parameter2=Wert2…
    3. Per Webservice. Links Dazu wurden ja schon gepostet.

    Bei allen Varianten sollte natürlich nur dann ein erfolgreicher Request möglich sein wenn sich der Client authentifiziert hat (z.B. mit HTTP-AUTH) und für alle Varianten muss auf dem Webserver ein Programm geschrieben werden was die Daten entgegennimmt und entsprechend aufbereitet ins DBMS schreibt.

    und wie die Datenbank Tabelle überhaupt aussehen soll.

    Das kommt drauf an was für ein DBMS Du auf dem Webserver nutzt

    In welcher Programmiersprache, die Du beherrschst, kannst Du denn auf dem Webserver Programme nutzen?

    Welcher Webserver? Welches OS? Welches DBMS?

    Gruß, Ulf

    Samstag, 20. April 2013 13:46
  • Ich habe es jetzt so gemacht:

            private void button5_Click(object sender, EventArgs e)
            {
    
                string sMitglieder = "";
    
    for (int i=0; i< lstMitglieder.Items.Count ; i++)
    
    
    {
    
    sMitglieder += lstMitglieder.items.item[i];
    
    
    sMitglieder += Environment.Newline;
    
    }
    
    
    
    //Eine neue Datei erstellen und lokal speichern (Beispiel hier: Textfile)
     StreamWriter w = new StreamWriter("S://Neuer Ordner/New.txt", true);
     w.WriteLine("Datum: " + dtpDatum.Text + "\n"
    
     + " " + "Ort:  " + lstOrt.Text + "\n"
    
     + " " + "Uhrzeit: " + cmbUhrzeitVon.Text + "-" + cmbUhrzeitBis.Text + "\n"
    
     + sMitglieder); 
    
    
    
                w.Close();

    Doch jetzt wird bei

    sMitglieder += lstMitglieder.items.item[i];         das .items als Fehler unterstrichen

    und bei


    sMitglieder += Environment.Newline;             .Newline als Fehler unterstrichen                                  

    Hat sich erledigt! Hab den fehler schon selbst gefunden.

    Danke nochmal für die vielen Antworten

    Mittwoch, 17. April 2013 12:58

Alle Antworten

  • hmm, warum mit Dateien und FTP arbeiten? Ich würde ja einen WCF Service oder WebService vorziehen. Am leichtesten zu verstehen: RESTful Services With ASP.NET MVC.
    Sonntag, 14. April 2013 17:02
  • Für mich wäre eine ftp-Seite besser.
    Sonntag, 14. April 2013 19:51
  • Guckst du hier http://dotnet-snippets.de/snippet/datei-auf-einen-ftp-uploaden/494

    Aber die bessere methode wäre tatsächlich die wcf...

    • Als Antwort markiert Marvin231 Montag, 15. April 2013 18:31
    • Tag als Antwort aufgehoben Marvin231 Montag, 15. April 2013 19:59
    • Als Antwort markiert Marvin231 Mittwoch, 17. April 2013 12:59
    • Tag als Antwort aufgehoben Marvin231 Freitag, 19. April 2013 20:19
    • Als Antwort markiert Marcel RomaModerator Donnerstag, 6. Juni 2013 04:57
    Sonntag, 14. April 2013 23:58
  • Hallo Marvin,

    kannst Du mal Deinen bishergien Programmcode zeigen?

    Grüße

    Montag, 15. April 2013 09:53
  • using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.Collections;
    using System.Collections.Specialized;
    using System.IO;
    using System.Net;
    
    namespace LGRüsselsheimAnwesenheitsliste
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
    
            }
    
            
    
            private void cmdInfo_Click(object sender, EventArgs e)
            {
                Info form = new Info();
                form.Show();
            }
    
            private void cmdMitgliedEinfügen_Click(object sender, EventArgs e)
            {
                if (txtNeuesMitglied.Text == "")
                    return;
    
                lstMitglieder.Items.Add(txtNeuesMitglied.Text);
                txtNeuesMitglied.Text = "";
            }
    
            private void cmdMitgliedLöschen_Click(object sender, EventArgs e)
            {
    
                int x = lstMitglieder.SelectedIndex;
                if (x != -1)
                    lstMitglieder.Items.RemoveAt(x);
            }
    
            private void cmdOrtEinfügen_Click(object sender, EventArgs e)
            {
                if (txtNeuerOrt.Text == "")
                    return;
    
                lstOrt.Items.Add(txtNeuerOrt.Text);
                txtNeuerOrt.Text = "";
            }
    
            private void cmdOrtLöschen_Click(object sender, EventArgs e)
            {
                int x = lstOrt.SelectedIndex;
                if (x != -1)
                    lstOrt.Items.RemoveAt(x);
            }
    
    
            private void Form1_FormClosing(object sender, FormClosingEventArgs e)
            {
                Properties.Settings.Default.ItemsOrt = new StringCollection();
                Properties.Settings.Default.ItemsOrt.AddRange(lstOrt.Items.Cast<string>().ToArray());
                Properties.Settings.Default.Items = new StringCollection();
                Properties.Settings.Default.Items.AddRange(lstMitglieder.Items.Cast<string>().ToArray());
                Properties.Settings.Default.Save();
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                if (Properties.Settings.Default.Items != null)
                    lstMitglieder.Items.AddRange(Properties.Settings.Default.Items.Cast<string>().ToArray());
                if (Properties.Settings.Default.ItemsOrt != null)
                    lstOrt.Items.AddRange(Properties.Settings.Default.ItemsOrt.Cast<string>().ToArray());
            }
    
    
    
    
            
        }
    }
    

    Bis jetzt sieht er so aus. Jetzt soll nur noch die Items aus der ListBox Mitglieder/Ort und das Datum und die Uhrzeit in ein Text zusammengefasst werden und dann als Textdatei auf dem Server hochgeladen werden.(Durch ein Button soll es dann hochgeladen werden)
    Montag, 15. April 2013 11:09
  • Hallo Marvin,

    sehe ich das Richtig, Dir geht es hierbei nicht um FTP, sondern eigentlich nur darum wie Du die Daten von (Client) A zu (Server) B bekommst? Wenn dem so ist, dann schau Dir mal folgenden Link an.

    http://csharp-tricks.blogspot.com/2010/09/datenaustausch-im-internet-und-netzwerk.html


    Grüße,

    Stefan Kleinewillinghoefer, MICROSOFT   Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip Entwickler helfen Entwicklern“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden koennen.

    Montag, 15. April 2013 11:24
  • Geht es Dir nur um das erstellen der txt Datei?

    Montag, 15. April 2013 12:02
  • und das senden an eine ftp-Seite oder an ein anderes Programm
    Montag, 15. April 2013 13:56
  • Also nochmal zusammengefasst: Ich habe eine Anwesenheitssoftware erstellt. Dort kann man dann Personen, Ort, Datum und Uhrzeit auswählen. Mann man die alle ausgewählt hat klickt man dann auf ein Button und eine textdatei mit den ausgwählten Personen, Ort, Datum und Uhrzeit soll entstehen. Diese Textdatei soll dann auf eine website oder ftp-seite(z.B. über den webspace)hochgeladen werden. Dort kann dann jeder diese Datei egal vom welchen PC runterladen. Eine andere Idee wäre statt auf eine website hochzuladen, soll die Datei direkt an ein andere Software gesendet werden.

    Beíspiel: Wir machen nach jedem Training eine Anwesenheitsliste. Jedes Mitglied von dem Verein hat die Anwesenheitssoftware. Wenn jemand eine Anwesenheitsliste erstellt, werden die ausgewählten Items in eine Textdatei umgewandelt und an eine website oder an die Software zum empfangen der Datei gesendet.

    Montag, 15. April 2013 17:48
  • using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.Collections;
    using System.Collections.Specialized;
    using System.IO;
    using System.Net;
    
    namespace LGRüsselsheimAnwesenheitsliste
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
    
            }
    
            
    
            private void cmdInfo_Click(object sender, EventArgs e)
            {
                Info form = new Info();
                form.Show();
            }
    
            private void cmdMitgliedEinfügen_Click(object sender, EventArgs e)
            {
                if (txtNeuesMitglied.Text == "")
                    return;
    
                lstMitglieder.Items.Add(txtNeuesMitglied.Text);
                txtNeuesMitglied.Text = "";
            }
    
            private void cmdMitgliedLöschen_Click(object sender, EventArgs e)
            {
    
                int x = lstMitglieder.SelectedIndex;
                if (x != -1)
                    lstMitglieder.Items.RemoveAt(x);
            }
    
            private void cmdOrtEinfügen_Click(object sender, EventArgs e)
            {
                if (txtNeuerOrt.Text == "")
                    return;
    
                lstOrt.Items.Add(txtNeuerOrt.Text);
                txtNeuerOrt.Text = "";
            }
    
            private void cmdOrtLöschen_Click(object sender, EventArgs e)
            {
                int x = lstOrt.SelectedIndex;
                if (x != -1)
                    lstOrt.Items.RemoveAt(x);
            }
    
    
            private void Form1_FormClosing(object sender, FormClosingEventArgs e)
            {
                Properties.Settings.Default.ItemsOrt = new StringCollection();
                Properties.Settings.Default.ItemsOrt.AddRange(lstOrt.Items.Cast<string>().ToArray());
                Properties.Settings.Default.Items = new StringCollection();
                Properties.Settings.Default.Items.AddRange(lstMitglieder.Items.Cast<string>().ToArray());
                Properties.Settings.Default.Save();
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                if (Properties.Settings.Default.Items != null)
                    lstMitglieder.Items.AddRange(Properties.Settings.Default.Items.Cast<string>().ToArray());
                if (Properties.Settings.Default.ItemsOrt != null)
                    lstOrt.Items.AddRange(Properties.Settings.Default.ItemsOrt.Cast<string>().ToArray());
            }
    
            private void button5_Click(object sender, EventArgs e)
            {
                //Eine neue Datei erstellen und lokal speichern (Beispiel hier: Textfile)
                StreamWriter w = new StreamWriter("S://Neuer Ordner/New.txt", true);
                w.WriteLine("Datum: " + dtpDatum.Text + "\n" +" "+"Ort:  " + lstOrt.Text + "\n" +" "+ "Uhrzeit: " + cmbUhrzeitVon.Text + "-" + cmbUhrzeitBis.Text + "\n" + lstMitglieder.Text);
                w.Close();
    
                //Ein Request erstellen an den ftp Server
                String strFilename = "File.txt";
                FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://lgranwesenheit.bplaced.net/" + strFilename);
         
    
                //Die Methode angeben um eine Datei hochzuladen
                request.Method = WebRequestMethods.Ftp.UploadFile;
    
                //Berechtigungsdetails setzen vom ftp Server durch Username und Passwort
                request.Credentials = new NetworkCredential("Benutzername", "Passwort");
    
                try
                {
                    //Versuch eine Verbindung zu erstellen und eine Antwort zu erhalten
                    WebResponse response = request.GetResponse();
                    MessageBox.Show("Response hat funktioniert");
                }
                catch (Exception exp)
                {
                    MessageBox.Show(exp.ToString());
                }
    
    
                //Neuer FileStream erstellen für die Datei
                FileStream fs = new FileStream("S://Neuer Ordner/New.txt", FileMode.Open);
                byte[] fileContents = new byte[fs.Length];
                fs.Read(fileContents, 0, Convert.ToInt32(fs.Length));
                fs.Flush();
                fs.Close();
    
                //Ein neuen Stream für den Request erstellen dem der FileStream mitgegeben wird.
                Stream requestStream = request.GetRequestStream();
                requestStream.Write(fileContents, 0, fileContents.Length);
                requestStream.Close();
    
                //Verbindung abbschliessen
                request.Abort();              
            }
    
    
    
    
            
        }
    }

    Hier ist der fertige Code. Nun hab ich zwei Probleme:

    1. Die Textdatei wird nur auf dem Computer und nicht auf der ftp-Seite erstellt.

    2. Wenn ich das so hab: w.WriteLine("Datum: " + dtpDatum.Text + "\n" +" "+"Ort:  " + lstOrt.Text + "\n" +" "+ "Uhrzeit: " + cmbUhrzeitVon.Text + "-" + cmbUhrzeitBis.Text + "\n" + lstMitglieder.Text);

    dann wird nur der erste name aus der listbox lstMitglieder angezeigt. Ich wilol aber das alle Namen angezeigt werden.

    Vielleicht kann mir ja jemand helfen.

    Montag, 15. April 2013 20:45
  • So wie ich das sehe hast Du ja das Beispiel von dotnet snippets direkt übernommen, warum das so  nicht funktioniert, weiß ich nicht. Die Benutzername und Passwörter hast ja sicherlich angepaßt?!

    Wenn Du mal ein Beispiel angibst wie die txt Datei aussehen soll, kann man Dir bei der Erstellung leichter helfen.

    Dienstag, 16. April 2013 06:48
  • Hier ein funktionierendes Beispiel: Upload-Dateien mit FTP.

    Trenne die Aufgaben der lokalen Dateierstellung und die des Uploads. Mache also zwei Methoden daraus. Verzichte am Anfang auch mal auf try-catch, das erhöht die Lesbarkeit.

    btw, FTP-Seite ist eine Wortneuschöpfung.

    Dienstag, 16. April 2013 08:04
  • So wie ich das sehe hast Du ja das Beispiel von dotnet snippets direkt übernommen, warum das so  nicht funktioniert, weiß ich nicht. Die Benutzername und Passwörter hast ja sicherlich angepaßt?!

    Wenn Du mal ein Beispiel angibst wie die txt Datei aussehen soll, kann man Dir bei der Erstellung leichter helfen.

    Ich hab es mit dem hochladen endlich geschafft.

    Die Datei soll so ausehehn:

    Datum: ___________

    Ort:_________

    Uhrzeit:_________ - ______

    _____________________(Hier dann die anwesenden Mitglieder)

    Bei mir ist es jetz so, dass nach jeder neu angelegten Anwesenheitslistei kein Abstand ist. Es wäre besser das danach eine Zeile Abstand ist.

    Dienstag, 16. April 2013 13:40
  • Das liegt glaub an:

    lstMitglieder.Text

    Du mußt da jeden einzelnen Eintrag auslesen:

    lstMitglieder.Items.Item[]

    da gibt es auch noch lstMitglieder.Items.Count wo die Anzahl

    Deiner Einträge abgelegt ist.

    also in etwa:

    string sMitglieder = ""

    for int i=0, i< lstMitglieder.Items.Count , i++

    {

    sMietglieder += lstMitglieder.items.item[i];

    sMietglieder += Environment.Newline;

    }


    • Bearbeitet sleepy007 Dienstag, 16. April 2013 14:53
    Dienstag, 16. April 2013 14:24
  • Das liegt glaub an:

    lstMitglieder.Text

    Du mußt da jeden einzelnen Eintrag auslesen:

    lstMitglieder.Items.Item[]

    da gibt es auch noch lstMitglieder.Items.Count wo die Anzahl

    Deiner Einträge abgelegt ist.

    also in etwa:

    string sMitglieder = ""

    for int i=0, i< lstMitglieder.Items.Count , i++

    {

    sMietglieder += lstMitglieder.items.item[i];

    sMietglieder += Environment.Newline;

    }



    Wo schreib ich den 2.Vorschlag hin? In die Klammer w.WriteLine("Datum: " + dtpDatum.Text + "\n" +" "+"Ort:  " + lstOrt.Text + "\n" +" "+ "Uhrzeit: " + cmbUhrzeitVon.Text + "-" + cmbUhrzeitBis.Text + "\n" + lstMitglieder.Text);       kann es ja nicht.
    Dienstag, 16. April 2013 15:38
  • Wo schreib ich den 2.Vorschlag hin? In die Klammer w.WriteLine("Datum: " + dtpDatum.Text + "\n" +" "+"Ort:  " + lstOrt.Text + "\n" +" "+ "Uhrzeit: " + cmbUhrzeitVon.Text + "-" + cmbUhrzeitBis.Text + "\n" + lstMitglieder.Text);       kann es ja nicht.

    davor:

    string sMitglieder = ""

    for (int i=0; i< lstMitglieder.Items.Count ; i++)

    {

    sMitglieder += lstMitglieder.items.item[i];

    sMitglieder += Environment.Newline;

    }

    w.WriteLine("Datum: " + dtpDatum.Text + "\n"

    +" "+"Ort: " + lstOrt.Text + "\n"

    +" "+ "Uhrzeit: " + cmbUhrzeitVon.Text + "-" + cmbUhrzeitBis.Text + "\n"

    + sMitglieder);




    • Bearbeitet sleepy007 Mittwoch, 17. April 2013 05:32
    • Als Antwort markiert Marvin231 Mittwoch, 17. April 2013 12:58
    • Tag als Antwort aufgehoben Marvin231 Samstag, 20. April 2013 13:46
    Mittwoch, 17. April 2013 05:29
  • Ich habe es jetzt so gemacht:

            private void button5_Click(object sender, EventArgs e)
            {
    
                string sMitglieder = "";
    
    for (int i=0; i< lstMitglieder.Items.Count ; i++)
    
    
    {
    
    sMitglieder += lstMitglieder.items.item[i];
    
    
    sMitglieder += Environment.Newline;
    
    }
    
    
    
    //Eine neue Datei erstellen und lokal speichern (Beispiel hier: Textfile)
     StreamWriter w = new StreamWriter("S://Neuer Ordner/New.txt", true);
     w.WriteLine("Datum: " + dtpDatum.Text + "\n"
    
     + " " + "Ort:  " + lstOrt.Text + "\n"
    
     + " " + "Uhrzeit: " + cmbUhrzeitVon.Text + "-" + cmbUhrzeitBis.Text + "\n"
    
     + sMitglieder); 
    
    
    
                w.Close();

    Doch jetzt wird bei

    sMitglieder += lstMitglieder.items.item[i];         das .items als Fehler unterstrichen

    und bei


    sMitglieder += Environment.Newline;             .Newline als Fehler unterstrichen                                  

    Mittwoch, 17. April 2013 12:50
  • Ich habe es jetzt so gemacht:

            private void button5_Click(object sender, EventArgs e)
            {
    
                string sMitglieder = "";
    
    for (int i=0; i< lstMitglieder.Items.Count ; i++)
    
    
    {
    
    sMitglieder += lstMitglieder.items.item[i];
    
    
    sMitglieder += Environment.Newline;
    
    }
    
    
    
    //Eine neue Datei erstellen und lokal speichern (Beispiel hier: Textfile)
     StreamWriter w = new StreamWriter("S://Neuer Ordner/New.txt", true);
     w.WriteLine("Datum: " + dtpDatum.Text + "\n"
    
     + " " + "Ort:  " + lstOrt.Text + "\n"
    
     + " " + "Uhrzeit: " + cmbUhrzeitVon.Text + "-" + cmbUhrzeitBis.Text + "\n"
    
     + sMitglieder); 
    
    
    
                w.Close();

    Doch jetzt wird bei

    sMitglieder += lstMitglieder.items.item[i];         das .items als Fehler unterstrichen

    und bei


    sMitglieder += Environment.Newline;             .Newline als Fehler unterstrichen                                  

    Hat sich erledigt! Hab den fehler schon selbst gefunden.

    Danke nochmal für die vielen Antworten

    Mittwoch, 17. April 2013 12:58
  • Schreib das mal lesbarer:

     w.WriteLine(string.Format(
      "Datum: {0}\nOrt:  {1}\nUhrzeit: {2}-{3}\n{4}",
      dtpDatum.Text, lstOrt.Text, cmbUhrzeitVon.Text, cmbUhrzeitBis.Text,sMitglieder
      )); 

    Warum arbeitst du mit einfachen Textdateien und nicht mit HTML oder XML?

    Mittwoch, 17. April 2013 13:00
  • Könnte man auch, statt in eine Textdatei zu schreiben, die Daten in eine excel Tebelle schreiben. Also es soll schon ein vorgefertigte Tabelle geben, wo links schon alle Namen stehen und oben alle Tage aus diesem Jahr. Wenn man nun die Anwesenheitsliste erstellt, dann soll einfach nur ein Kreuz gemacht werden, wer an dem Tag da war.

    Beispiel: Person 1,2 und 3 waren am 19.04 da. Dann soll in der Tabelle am 19.04 person1, 2 und 3 angekreuzt werden.

    Freitag, 19. April 2013 20:18
  • Hallo Marvin,

    können kann man vieles. Es macht aber IMHO weder Sinn, das von dir gewünschte mit Textdateien noch mit Exceldateien zu lösen.

    Arbeite mit einer Datenbank. Ob das nun SQL Server, SQL Server CE, Access oder was anderes ist, hängt von deinen genauen Anforderungen ab. Aber ich denke nicht, dass Du mit den anderen "Lösungen" glücklich wirst.

    Wenn Du zu deiner Anwendung noch eine Webanwendung hast, kannst Du die Daten ggfs. auch über Webservices hin- und hersenden.

    Was Du aber auf jeden Fall machen solltest, ist, die Datenhaltung von der (Ausgabe)Formatierung zu trennen. Es macht keinerlei Sinn, die Daten schon gleich in einem Format zu schreiben, dass eine ggfs. später notwendige Weiterverarbeitung der enthaltenen Daten unmöglich macht oder sehr erschwert.

    Wenn es gar nicht anders geht, arbeite mit Serialisierung/Deserialisierung. Ein Beispiel hierfür findest Du hier:

      http://www.aspnetzone.de/files/folders/stefanfalz/entry222489.aspx

    Das Beispiel ist zwar in VB.NET, da der Code aber recht übersichtlich ist, solltest Du das problemlos umwandeln können.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community


    Freitag, 19. April 2013 20:29
    Moderator
  • Ok, ich werde es jetzt mit einem webserver versuchen. Den Server habe ich schon fertig angelegt. Kann mir jemand sagen, wie ich die Daten von dem Anwesenheitslisten Programm in die Datenbank bekommen und wie die Datenbank Tabelle überhaupt aussehen soll. Es soll ja so aussehen, dass wenn man den Namen in der Software auswählt.l, dass dann am entsprechenden Tag ein Kreuz bei diesem Namen gemacht wird.
    Samstag, 20. April 2013 12:08
  • Kann mir jemand sagen, wie ich die Daten von dem Anwesenheitslisten Programm in die Datenbank bekommen

    Hi,

    Da gibt es viele Möglichkeiten:

    1. Per POST-Request an die gegenstelle übermitteln (Also genau so wie bei einem <form…>…</form> nur ohne das Formular selbst) Siehe dazu Gewusst wie: Senden Sie Daten mithilfe der WebRequest-Klasse
    2. Per GET-Request, also quasi über eine parametrisierte URL (?Parameter1=Wert1&Parameter2=Wert2…
    3. Per Webservice. Links Dazu wurden ja schon gepostet.

    Bei allen Varianten sollte natürlich nur dann ein erfolgreicher Request möglich sein wenn sich der Client authentifiziert hat (z.B. mit HTTP-AUTH) und für alle Varianten muss auf dem Webserver ein Programm geschrieben werden was die Daten entgegennimmt und entsprechend aufbereitet ins DBMS schreibt.

    und wie die Datenbank Tabelle überhaupt aussehen soll.

    Das kommt drauf an was für ein DBMS Du auf dem Webserver nutzt

    In welcher Programmiersprache, die Du beherrschst, kannst Du denn auf dem Webserver Programme nutzen?

    Welcher Webserver? Welches OS? Welches DBMS?

    Gruß, Ulf

    Samstag, 20. April 2013 13:46
  • Hallo Marvin231,

    Hast Du dein Problem gelöst? Es wäre nett, wenn Du die Beiträge, die dir geholfen haben, als hilfreich oder als Antwort markieren würdest.

    Gruß
    Marcel

    Mittwoch, 29. Mai 2013 10:15
    Moderator
  • Hallo zusammen,

    Da sich Marvin nicht mehr gemeldet hat, gehe ich davon aus, dass seine Frage beantwortet wurde.

    Gruß
    Marcel

    Donnerstag, 6. Juni 2013 04:56
    Moderator