Laden...

Forenbeiträge von Estorik Ingesamt 53 Beiträge

12.04.2013 - 09:36 Uhr

Es stellt sich ja auch die Frage ob es ein Konto ohne Kunden geben kann... ???? Aber ich machs einfach so wie es darklight gesagt hat...

Gruß
Esto

12.04.2013 - 07:48 Uhr

Hallo darklight!

Danke dir...:-) so macht auch sinn... ich kam nur mit der berühmten frage durcheinander "was war zuerst da, das Huhn der das Ei" 😃

Gruß
Esto

12.04.2013 - 07:33 Uhr

Hallo unconnected,

Es ist eine kleine Büro toolbox! Die spezialisierte listen aus den unterschiedlichstem Formaten zusammenfügt. Und die Bearbeitung großer Exellisten vornimmt. Nichts weltbewegendes. Im Prinzip sind alle Funktionalitäten die ich mal programmiert hab darin verhaftet.
Ein bisschen Textextraktion aus PDF Dokumenten etc. Es ist kein wirklich komplexes System. ..

Gruß

Esto

11.04.2013 - 20:30 Uhr

Hallo Leute,

hab da mal ne Frage in eigener Sache. Ich hoffe dennoch ihr könnt mir vielleicht einen Lösngsansatz nennen?

Im Studium habe ich eine Übungsaufgabe bezüglich UML. Wir sollen eine Bank, Konten und Kunden und weitere Dinge in Form eines UML's visualisieren.

Der Dozent setzt aber in der Aufgabestellung voraus, dass der Kunde, nur Kunde einer Bank ist, wenn er ein Konto besitzt. Und ohne Kunden kanne es kein Konto geben.

Meine Frage also:

Ist der Kunde eine Komposition des Kontos oder ist das Konto die Komposition des Kunden?

Vielleicht könnte mir da jemand helfen. Hab wahrscheinlich nur ein Brett vor dem Kopf.

Gruß

Esto

11.04.2013 - 19:45 Uhr

Hallo unconnected,

erstmal danke für die schnelle Antwort. Ich hab nur ein Brace-Complete benutzt..

Mein Profil ist auf der Arbeit mal abgeraucht(Roaming Profiles 😕 ), seit dem muss der Fehler da sein.

Es kann aber sein dass die VS-Einstellungen, im abgerauchten Profil gespeichert waren.

Könnte es damit zusammen hängen?

Abgesehen vom fehlenden Brace-Complete habe ich keine Einschränkungen.

Gruß

Esto

11.04.2013 - 15:26 Uhr

Hallo Leute,
ich hab ein angefangenes Projekt nach langer Zeit mal wieder gestartet und wollte weiter programmieren. Direkt am Anfang wollte ich das Programm einmal starten, doch das VS gibt mir folgende Fehler aus

Fehlermeldung:
Fehler 4 Source file 'C:\Windows\TEMP\0wrvfuta.0.cs' could not be found

Fehlermeldung:
Fehler 5 No inputs specified

Fehlermeldung:
Fehler 7 Source file 'C:\Windows\TEMP\lgtzgems.0.cs' could not be found

Fehlermeldung:
Fehler 8 No inputs specified

Kann jemand von euch was mit diesen Meldungen anfangen?

Gruß

Esto

19.03.2013 - 15:06 Uhr

Stimmt hast recht... Guter plan... Danke für die Hilfe...:)

19.03.2013 - 13:52 Uhr

Hi,

erstmal danke für die schnelle Antwort.

Nein es geht um eine wirklich physische Umstellung des DataSets. Dieses muss ich in umgestellter Form wieder in eine Excelfile schreiben...!

Leider Gottes muss ich auch Teilweise die Inhalte der Zellen zerpflücken und auf mehrere Spalten, die neu hinzukommen, verteilen.

Ich war drauf und dran aus der DataTable eine List<List<string>> zu machen.. Nur scheint mir die Lösung sehr ineffizient.

Wie meinst du denn kopieren?

Gruß

Esto

19.03.2013 - 13:10 Uhr

Hallo Leute,

Habe wieder mal ein Anliegen, bei dem ihr mir vielleicht helfen könnt.
Ich fang einfach mal an...

Problem ist, ich habe eine ExcelTabelle die ich als DataSet in den Speicher lade. Daraus ziehe ich mir eine beliebige DataTable, deren Spaltenreihenfolge ich ändern möchte.

Bestimmte Spalten sollen gelöscht werden, einige hinzugefügt und andere eben nur umgestellt.

Wollte dazu ein neues DataSet erstellen, und die Spalten aus dem Ursprungs-Dataset in der gewünschten Reihenfolge dort aneinander hängen.

Mehr oder weniger Baukastenprinzip.

Nur hängen die selektierten DataColumns noch an der Ursprungs-DataTable. 😕

Wie kann ich diese davon lösen?
Oder gitb es einen anderen Weg?

Gruß

Esto

23.01.2013 - 12:07 Uhr

Hallo Leutz,

also wie die Betreff Zeile zeigt geht es um Exception Handling in größeren Projekten.

Ich soll jetzt ein relativ komplexes Programm schreiben, will dieses jedoch nicht nur "irgendwie" hinbekommen, sondern es schon wartbar und vor allen Dingen stabil schreiben.

Bisher sah mein ExceptionHandling so aus das ich immer in der betreffenden Methode die Fehler abgefangen und dann behandelt habe, wenn dies nicht ging hab ich sie in ein Log geschrieben.

Ich schwanke jetzt gerade zwischen try;catch und throws oder ein globales ExceptionHandling (noch keine Ahnung wie ich das genau umsetzten sollte)

Ich weis es hängt immer davon ab was der Fehler ist und wie die Methode aussieht. Bei meinen bisher "kleinen" und übersichtlichen Projekten hatte das WIE nicht so die Bedeutung sonder Hauptsache DAS Fehler behandelt wurden.

Gibt es vielleicht so eine Faustregel wann ich welche Variante nutzen sollte?? Was habt Ihr für Erfahrungen mit größeren Projekten??

Wäre super wenn mir jemand helfen kann. 😃

Viele Grüße

Estorik

10.01.2013 - 07:43 Uhr

Hallo Leute,

ich hab da mal wieder ne Frage.

Gibt es mittels Linq die Möglichkeit Inhalte zweier DataSets auf "Mögliche" Übereinstimmung mit einstellbarer, maximaler Fehlerquote zu überprüfen.

Ich verwende bei Strings den Levensthein Algorithmus...

Jedoch ist es bei großen DataSets aus Exceltabellen sehr Zeitaufwendig die Zellen der DataSets in einen String umzuwandeln, um sie dann durch den Levenshein Algorithmus zu jagen.

Danach muss ich das Ergebnis wieder in ein DataSet umwandeln, da ich dieses an einen Report Viewer übergeben will.

Das Dauert bei Großen DataSets sehr lang..

Gibt es nicht eine elegantere und vor allem performantere Lösung?

Gruß

Estorik

21.12.2012 - 08:49 Uhr

Ich hab die Lösung gefunden...

Das ganze geht mit Except also genau das gegenteil von Intersect

Intersect liefert die schnittmenge(also die Items die in beiden Listen gleich sind)

Except liefert die Gesamtmenge minus der Schnittmenge(also die Items die nicht in beiden Listen vorhanden sind.

Intersect:


IEnumerable<DataRow> matched = table1.AsEnumerable().Intersect(table2.AsEnumerable(), DataRowComparer.Default);

Except:


 IEnumerable<DataRow> unmatched = table1.AsEnumerable().Except(table2.AsEnumerable(), DataRowComparer.Default);

Vielleicht hilft es noch jemanden...

Gruß

Esto

20.12.2012 - 17:26 Uhr

Hallo Leute,

ich möchte zwei DataTables vergleichen, die Schnittmenge der beiden Tabellen raus zu bekommen war nicht so das Problem und funktioniert super.

Dies habe ich wie folgt gelöst.


IEnumerable<DataRow> matched = table1.AsEnumerable().Intersect(table2.AsEnumerable(), DataRowComparer.Default);

Ich benötige aber auch die Items die er in der zweiten Liste nicht vorhanden sind... Nur schmeist er mir bei folgender Routine die Exception:

Die Tabelle hat keine Primärschlüssel.

Routine:


IEnumerable<DataRow> test = from  DataRow row in table1.AsEnumerable()
                                                 where !(table2.Rows.Contains(row))
                                                 select row;

Die Daten kommen aus einem Excelsheet...

Wo ist der Fehler? Oder hat jemand eine andere Idee die Ungleichen Items der Listen zu bekommen?

Gruß

Esto

28.11.2012 - 15:57 Uhr

Also ich habs jetzt endlich geschafft....

Ich habe im (.rdlc) File direkt eine selbstgebastelte Klasse als Datenquelle übergeben und es läuft jetzt perfekt.

Hier mal mein Test Code...


           Item a = new Item("DateiName 1", 1, 4, "Dies ist der Zelleninhalt 1");
           Item b = new Item("DateiName 2", 2, 5, "Dies ist der Zelleninhalt 2");
                   
           List<Item> diff = new List<Item>();
           
           diff.Add(a);
           diff.Add(b);
          
           rpvDifferenceViewer.ProcessingMode = ProcessingMode.Local;

           rpvDifferenceViewer.LocalReport.ReportPath = "xxx\\Report1.rdlc";
           rpvDifferenceViewer.LocalReport.DataSources.Add(new ReportDataSource("Different", diff));
           rpvDifferenceViewer.RefreshReport();

Und hier meine (Test) Klasse Item...


 public class Item
{
        public string FileName { get; set; }
        public int RowNumber { get; set; }
        public int ColNumber { get; set; }
        public string Content { get; set; }

        public Item(string fileName, int rowNumber, int colNumber, string content)
        {
            FileName = fileName;
            RowNumber = rowNumber;
            ColNumber = colNumber;
            Content = content;
        }
}

Und ich hab gedacht das Ding treibt mich in den Wahnsinn... 😃

Danke nochmal für die tatkräfitige Unterstützung...:)

Gruß

Esto

28.11.2012 - 13:24 Uhr

Hmm bezüglich dieses ReportViewers hast du sicherlich recht... 😃 Ich hatte für einen kurzen Moment gedacht ich kann alle Steuerelemente in diesem Report verwenden.... 😛 Ich werd kein Freund von dem Ding 😃

28.11.2012 - 12:49 Uhr

Hmm ja stimmt irgendwie logisch. Hab wahrscheinlich grad ein Brett vor dem Kopf.

Aber der Ablauf ist richtig?

  1. Den ReportViewer auf die Form ziehen
  2. Als Datenquelle des ReportViewers die Berichtsdatei (.rdlc) wählen
  3. Als Datenquelle für den Bericht(.rdlc) das entsprechende DataSet wählen.
  4. Den Bericht in den Viewer kippen?

Kann ich dem Bericht jedes x-beliebige Steuerelement übergeben?

28.11.2012 - 12:36 Uhr

Mal ne Frage zum Verständnis!

Wenn ich dem ReportViewer doch eine Tabelle eines DataSets gebe, ist doch die Struktur des Reports definiert. Warum muss ich noch eine Berichtsdefinition (.rdlc) einbinden?

irgendwie steig ich da nicht durch...

Also sind die Schritte folgendermaßen???

  1. Den ReportViewer auf die Form ziehen
  2. Als Datenquelle des ReportViewers die Berichtsdatei (.rdlc) wählen
  3. Als Datenquelle für den Bericht(.rdlc) das entsprechende DataSet wählen.
  4. Den Bericht in den Viewer kippen?

Und wie den Bericht dynamisch im code je nach DataSet generieren?

Ich versteh das Ding net so ganz... 😃

28.11.2012 - 10:07 Uhr

Aller besten Dank Leute.... 😃

27.11.2012 - 15:18 Uhr

Öhhhm ne hab ich bisher nicht gemacht... 😃 Dann wird da der Fehler liegen... Ich arbeite das erste mal mit dem Ding 😃

Danke dir...

27.11.2012 - 14:57 Uhr

Hi gfoidl,

danke für die schnelle Antwort! Ich hab die Namen angepasst, doch leider macht er noch immer nichts. Er gibt aber auch keine Fehlermeldung oder irgendwas aus...

Gruß

Esto

27.11.2012 - 14:24 Uhr

Hallo Leute,

ich habe ein Problem mit der Ausgabe eines DataSets im ReportViewer Steuerelement. Dats DataSet enhält definitiv Daten(hab ich überprüft) nur zeigt mir der ReportViewer nichts an, obwohl ich ihm das DataSet übergeben habe.

Hier mal mein Code dazu...


           DB_Connector con = new DB_Connector(centralDataPath, "Difference");

           rpvDifferenceViewer.ProcessingMode = ProcessingMode.Local;

           LocalReport lc = rpvDifferenceViewer.LocalReport;

           ReportDataSource src = new ReportDataSource("Result", con.getCompleteTableContentFromDataBase());
           rpvDifferenceViewer.LocalReport.DataSources.Add(src);

           rpvDifferenceViewer.RefreshReport();


Hab ich dort einen Fehler? oder warum funktioniert das nicht.

Die Funktionsnamen sollte ich ein wenig überarbeiten ;P

Gruß

Esto

16.11.2012 - 12:49 Uhr

Ahh wie cool nach mehrmaligen neu erstellen und ausführen hat ers jetzt geschluckt! DANKÖÖ

Gruß

Esto

16.11.2012 - 12:34 Uhr

Hi gfoidl ,

ne hat er leider nicht gefressen. Die Meldungen sind immer noch da. Aber es sind ja auch nur Warnungen... Solange sie keine Probleme bereiten...Bisher läuft das Programm ja NOCH 😃

Aber danke für die schnelle Antwort. 😃

Gruß

Esto

16.11.2012 - 12:17 Uhr

Hallo Leute,

ich weis nicht ob ich mit diesem Thema hier im Forum richtig bin... Aber da Visual Studio spuckt mir Warnungen aus mit denen ich nichts anfangen und nicht weis wie ich sie beseitigen kann. Folgene 3 Fehlermeldungen zeigt mir das VS2010 an...

1.)> Fehlermeldung:

Warnung 1 At least one of the arguments for 'HTMLPreview.QueryFocus' cannot be marshaled by the runtime marshaler. Such arguments will therefore be passed as a pointer and may require unsafe code to manipulate.

2.)> Fehlermeldung:

Warnung 2 At least one of the arguments for 'IAdobePreviewHandler.QueryFocus' cannot be marshaled by the runtime marshaler. Such arguments will therefore be passed as a pointer and may require unsafe code to manipulate.

3.)> Fehlermeldung:

Warnung 3 The type library importer could not convert the signature for the member 'tagMSG.hwnd'.

Wie kann ich die beheben?

Gruß

Esto

14.11.2012 - 17:28 Uhr

Ist ein bisschen spät aber danke nochmal für die Antworten 😃

08.11.2012 - 10:58 Uhr

Hallo Leute,

ich hoff ihr könnt mir bei dem Problem helfen.

Ich habe eine Standartform im Designer erstellt. Nun benötige ich diese Form für unterschiedliche Funktionalitäten im Programm. Aber je nach Anwendung, kommen ein paar Steuerelemente hinzu. Dies wollt ich gerne über Vererbung regeln.

Ich habe jetzt eine Basisform und möchte diese Form mit all ihren Steuerelementen an eine andere Klasse vererben. Das funktioniert auch soweit.

Nur möchte ich jetzt der Kindklasse ein paar Steuerlemente hinzufügen, ich kann aber weder auf die vorhandene Steuerlemente namentlich zugreifen noch kann ich den Groupboxen Steuerlemente hinzufügen.

Auch wenn ich den FormDesigner der Kindklasse aufrufe sind alle sich auf der Form befindlichen Steuerlemente gesperrt!

Woran liegt das?

Gruß

Esto

19.09.2012 - 16:15 Uhr

Ich habe ein ähnliches Problem, bei mir nimmt das DataSet nur 255 Spalten auf. Ich um ein Excelfile zu Testzwecken mit 1000*1000 Zellen erstellt um es ins DataSet zu spielen. nur schneidet er mit die bei 255 Spalten ab. 😦

17.09.2012 - 11:24 Uhr

Leider muss ich diesen Thread nochaml aufleben lassen...

Das ganze funktioniert soweit, nur das er die FIles nicht im Browser öffnet... 😃

Er zeigt mir das Download Fenster und dann kann ich auswählen ob ichs speichern will oder öffnen, drück ich öffnen öffnet er ne neue Excelinstanz.

ich habe jetzt gelesen das das mit den IE einstellungen zu tun hat. Nur kann ich nicht bei jedem Rechner Die Einstellungen ändern auf denen das tool laufen soll. Geschweige denn irgendwelche Registry EInträge löschen.

Gibt es ne Möglichkeit dem Webbrowser Control derartige EInstellungen mit zu geben?

Gruß

Esto

14.09.2012 - 12:30 Uhr

GENAU Das hab ich gesucht 😃 Dankööö

14.09.2012 - 11:35 Uhr

Hallo Leute,

ich hab mich jetzt tot gesucht nach diesem Thema (aus im Forum 😃 ) habe aber leider nichts gefunden.

Ich möchte gerne eine Exceltabelle in meine form einbetten. Aber auch wirklich als Excelssheet. Mit nem PDF File hab ichs bereits geschafft.

Gibts da Möglichkeiten?

Gruß

Esto

06.09.2012 - 15:41 Uhr

Danke 😃

06.09.2012 - 15:37 Uhr

Ohh jetzt seh ich den fehler 😃 Ich wollte die Instanz auch nur im falle einer Exception abschießen, damit sich das beim nächsten Aufruf nicht beist (Das tool läuft halt unbeaufsichtigt. 😃 ich hab mich im Quellcode ein wenig verrant 😃

06.09.2012 - 15:18 Uhr

Hallo Leutz,

also ich habe mal wieder ein Problem. Ich habe ein Tool geschrieben welches Emails mit Anhang verschickt egal ob eine Outlook Instanz läuft oder nicht. Es funktioniert auch alles wunderbar, nur manchmal sagt er mir beim starten einer neuen Outlook Instanz das er ein Problem mit der NormalEmail.dotm hat!

Hier mal der Quellcode...


  public sendMail(string attachementSource, string subject, List<string> recipients, string mailText)
        {
                //Check if Outlook is running
                if (CheckIfOutlookInstanceIsRunning("OUTLOOK")){
                    Console.WriteLine("Outlook is running");
                }
                else{
                    Console.WriteLine("Outlook is not running");
                    Mailer.ProcessID = startOutlook();
                }

                bool sended = false;

                //Declare new ExcelApp
                Outlook.Application oApp = new Outlook.Application();
                Outlook.MailItem oMsg = (Outlook.MailItem)oApp.CreateItem(Outlook.OlItemType.olMailItem);

                try
                {
                    oMsg.Body = mailText.ToString();
                    String DisplayName = "Attachement";

                    int iPosition = (int)oMsg.Body.Length + 1;
                    int iAttachmentTyp = (int)Outlook.OlAttachmentType.olByValue;

                    Outlook.Attachment oAttach = oMsg.Attachments.Add(attachementSource, iPosition, iAttachmentTyp, DisplayName);

                    oMsg.Subject = subject;

                    Outlook.Recipients oRecips = (Outlook.Recipients)oMsg.Recipients;

                    //Add a List of MailAdresses to recipients
                    foreach (string address in recipients){
                        oRecips.Add(address);
                    }

                    if (oRecips != null){
                        ((Outlook._MailItem)oMsg).Send();
                    }
                    
                    if (ProcessID != 0)
                        closeOutlook(ProcessID);

                }
                catch (Exception ex)
                {
                  Console.WriteLine(ex.ToString());
                }
                finally
                {
                    Marshal.ReleaseComObject(oApp);
                    Marshal.ReleaseComObject(oMsg);

                }
        }

     
       private bool CheckIfOutlookInstanceIsRunning(string processname)
       {
           return Process.GetProcessesByName(processname).Length > 0 ;
       }

       private int startOutlook()
       {
           Process newOutlookInstzance = new Process();
           string path = readRegistryValue("SOFTWARE\\Microsoft\\Office\\14.0\\Outlook\\InstallRoot", "Path") + "\\OUTLOOK.EXE";

           newOutlookInstzance.StartInfo.FileName = path;
           newOutlookInstzance.Start();
           return newOutlookInstzance.Id;
       }

       private void closeOutlook(int processID)
       {
           Process outlookID = null;
           Process[] outlookName = null;
           try
           {
             outlookID = Process.GetProcessById(processID);
             outlookID.Kill();
           }
               
           catch(Exception ex)
           {
               Console.WriteLine("Prozess ID nicht gefunden" + ex.ToString());

               outlookName= Process.GetProcessesByName("OUTLOOK");

               foreach (Process process in outlookName)
               {
                  
                  try
                  {
                      process.CloseMainWindow();
                  }
                  catch (Exception e)
                  {
                      Console.WriteLine(e.ToString());
                      process.Kill();
                  }
                   
               }

           }
           
          
       }

       public string readRegistryValue (string Key, string Value)
        {
            RegistryKey key = RegistryKey.OpenRemoteBaseKey(RegistryHive.LocalMachine, getLocalMachineName()).OpenSubKey(Key);

            return (string)key.GetValue(Value);
           
        }

       private string getLocalMachineName()
        {
     
            return System.Net.Dns.GetHostName();
        }
	}

Woran kann das liegen?

Gruß Esto

05.09.2012 - 13:42 Uhr

Hallo Leutz,

hat sich schon erledigt da die Funktion openBaseKey erst ab dem Framework 4.0 zur Verfügung steht. Ich muss meine Anwendungen aber leider für 3.5 entwickeln 😦

Gruß

Esto

05.09.2012 - 13:20 Uhr

Hallo Leute,

ich hab da mal wieder ein Problem bei dem ihr mir vielleicht weiter helfen könnt.
Ich möchte den Installationspfad von Outlook aus der Registry holen...

Das Problem ist das die Klasse RegistryKey mir nicht die Funktion OpenBaseKey() liefert. Woran kann das liegen?

Gruß

Estor

29.08.2012 - 15:43 Uhr

Hallo Leute,

ich hab mal ne Frage bezüglich der Ansteuerung von Outlook über einen zweiten angemeldeten Account. Wie kann ich dem Programm sagen welchen Account es nehmen soll zum versenden der Mail?

Mein bisheriger Code sendet immer nur wenn ein Account angemeldet ist.

Folgenden Code habe ich:


                Outlook.Application oApp = new Outlook.Application();
  
                Outlook.MailItem oMsg = (Outlook.MailItem)oApp.CreateItem(Outlook.OlItemType.olMailItem);

                oMsg.Body = mailText;

                String DisplayName = "Attachement";

                int iPosition = (int) oMsg.Body.Length+1;
                int iAttachmentTyp = (int)Outlook.OlAttachmentType.olByValue;

                Outlook.Attachment oAttach = oMsg.Attachments.Add(attachementSource, iAttachmentTyp, iPosition, DisplayName);

                oMsg.Subject = subject;

                Outlook.Recipients oRecips = (Outlook.Recipients)oMsg.Recipients;
                
                foreach (string address in recipients)
                {
                    oRecips.Add(address);
                }
                if (oRecips!= null)
                    oMsg.Send();

Ich habe auch das Forum schon durchsucht aber noch nichts wirklich gefunden. Vielleicht habt ihr ne Idee??

Gruß

Esto

24.08.2012 - 13:07 Uhr

Hallo Leutz,

ich hab da mal wieder ein Problem. Ich muss Zahlen(float) aus einem String Extrahieren. Damit Rechnen und sie später wieder als String konvertieren.

Mein Problem ist das ich al Dezimaltrennzeichen einen Punkt anstatt Komma haben will. Also im String soll später stehen 33.00.

Ich habe jetzt versucht das DezimalTrennzeichen mit Replace zu ersetzten. Er schmeist zwar keinen Fehler aber er ändert es auch nicht.

Vielleicht habt Ihr ne IDee woran es liegt.

Hier mal der Code-Schnipsel


 string tmp = (builder.ToString().Replace(".", NumberFormatInfo.CurrentInfo.CurrencyDecimalSeparator)).ToString();
time = float.Parse(tmp, NumberStyles.AllowDecimalPoint);

time = convertMinutesToHours(time);

string converted = time.ToString();

row[i] = String.Format("{0:0.00}", converted);
row[i].Replace(",", ".");
builder.Remove(0, builder.Length);


Wie ihr seht, hab ich ein bisschen rumprobiert. Das wird nicht der entgültige Code 🙂

13.08.2012 - 11:05 Uhr

@ weismat

das klingt gut...Die schau ich mir mal an...

Ich habs jetzt erstmal mal mit nem Dataset und OleDb gemacht. Und siehe da der Performancegewinn beim einlesen ist schon ist enorm.

Besten dank an alle, ihr habt mir echt geholfen.

Gruß

Esto

10.08.2012 - 21:20 Uhr

Was willst du nun machen?

Denke immer dran, wir wissen hier nicht was in deinem Kopf vorgeht.

😁 Das weis ich ja manchmal nicht 🙂

Also ich muss jetzt erstmal die Excelliste aufarbeiten. Und hatte gedacht auf das Excelsheet über Oledb zu zugreifen.

Meine Frage richtet sich nur noch an die Verarbeitung der Daten intern! Soll ich die Daten in ein Dataset einlesen oder in Listen??

Also die langfristige Lösung ist natürlich über ReportViewer... Aber ich muss jetzt kurzfristig diese Excelliste verarbeiten.

10.08.2012 - 20:18 Uhr

Ersteinmal danke für die schnellen Rückmeldungen...

@ FZelle

genau das ist das Problem... Ich würde den Report ja ändern, aber so schnell komm ich an keinen Zugang für die Datenbank um derartige Dinge zu realisieren... Dann zieh ich mir die Daten so wie ich sie brauche. Im Moment muss es halt die dreckige Variante sein. 😃 Aber auf Dauer werde ich mir einen besorgen.

Perfekt also meinst du eine OleDB Verbindung und als Datenstruktur ein Dataset?

@weismat

Bezüglich der Perfomance von Interop hab ich schnon meine Erfahrungen gemacht. Problematisch war halt auch das ich das File öfter geöffnet und geschlossen hab als nötig gewesen wäre.

EEPlus klingt super, nur bin ich schon froh dass das Visual Studio extra für mich besorgt wurde, glaube nich das ich im mom neue Software durchsetzen kann. Zusätzlich ist unser IT Support sehr störrisch was neue Software angeht.

Danke nocheinmal...

Gruß

Esto

10.08.2012 - 12:02 Uhr

ja leider gibt es den Grund... Ich bin selbst kein Datenbankadmin und habe keinen Zugang. Der Report (soll ein Standartreport sein) jedoch soll der """"Standartreport"""" unterschiedlich aufgearbeitet werden.

Mir steht also nur die fertige Excelliste zur Verfügung...

Also bevor ich jetzt jede Zelle bei ca 6000 Zeilen einzeln auseinander flücke, bastel ich mir lieber ein Programm... nur was ist der "schnellste" Weg??

Gruß

Esto

10.08.2012 - 09:29 Uhr

Hallo Leute,

wie oben im Header schon beschrieben, will ich Datenbankreports (im Excelformat) für unterschiedliche Verwendungszwecke umgestalten.

Diese Reports enthalten i.d.R ein ganze Menge Informationen. Bisher hatte ich alles über Das COM Objekt geregelt und auf Excel über Interop zugegriffen. Ich hatte dann zweitweise 5-6 Verbindungen im Programmablauf zum Excelfile die geöffnet und geschlossen werden(was ich für nicht so schön halte).

Lieber wäre mir eine Verbindung zum Daten saugen und eine zum Daten schreiben.

Oder besser einmal öffnen und erst schließen wenn das Excelfile umgestaltet ist.

Die Datenmanipulation hatte ich meistens über Dictionary oder Listen geregelt.

So nun zu meiner Frage:

Was ist besser eine Verbindung über Interop oder ODBC?

Welche Datenstruktur benutze ich am besten, um Daten im System zu verarbeiten (Listen etc) oder Dataset?

Welche von den Varianten ist Perfomanter?

Gruß

Esto

14.06.2012 - 15:38 Uhr

Ich bin wie in einem vorherigen Thread (Rechtliche Fragen zur kommerzielle Nutzung von iTextSharp / pdfSharp) schon besprochen auf eine ältere Version des ITextsharp umgestiegen. 😃

14.06.2012 - 15:25 Uhr

Hmm ja das hatte ich auch gefunden, nur hatte ich gedacht es gäbe einen kürzeren Weg 😦.

Naja danke aber für eure Hilfe

Gruß

Esto

14.06.2012 - 14:54 Uhr

Hallo Leutz,

ich versuche jetzt seit Stunden nen Weg zu finden, den Text aus einem PDF-Dokument in einen String einzulesen. Ich hab mich aufgrund Lizenzrechtlicher Gründe für pdfSharp entschieden.

Mit itextsharp ist dieses sehr einfach. Nur finde ich keinen Weg das mit pdfSharp zu machen.

Ich hab nach der Problematik bei Google und im Forum gesucht, aber leider nichts wirklich gefunden. Vielleicht kann mir jemand helfen.

Hir mal nen Code-Schnipsel:


string currentText = "";
PdfDocument document = PdfReader.Open(path);
int numberOfPages = document.Pages.Count;
PdfDictionary content;
for (inti=0; i< numberOfPages; i++)
{
             ?????????
}

Wäre super, Danke im vorraus.

Gruß

Esto

14.06.2012 - 11:31 Uhr

Eigentlich auf diese MIT Lizenz. Aber das hat sich schon erledigt. 😃 Danke trotzdem nochmal

13.06.2012 - 17:22 Uhr

Gibt es Dinge zu beachten? Sowie das erwähnen der Nutzung in den Credits oder der gleichen?

Gruß Esto

13.06.2012 - 17:07 Uhr

Besten dank Leute, ihr habt mir echt weitergeholfen. Ich hatte schon angst ich müsste etwas in der art selbst zusammenbasteln.

danke danke 😃

13.06.2012 - 16:13 Uhr

Hallo Leutz,

ich muss in meiner Firma ein Programm schreiben das bestimmte Nummern aus einem PDF liest. Ich habe mich jetzt lange über PDF-Bibliotheken wie iTextSharp oder pdfSharp informiert. Jedoch bin ich mir bei den rechtlichen Grundlagen für die Benutzung solcher Bibliotheken unsicher.

  1. Das Programm soll Closed Source sein.
  2. Wird es ja kommerziell genutzt.

Kommerziell heist in diesem Fall nicht verkaufen sondern zur Nutzung innerhalb der Firma.

Mir würde es schon reichen wenn ich nur den Text aus nem pdf raussaugen kann und alles intern weiter verarbeite(ist zwar nicht elegant aber wäre ok). Gibt es da ne Lösung ?

Ich bin auch kein Hauptamtlicher Programmierer, sondern schreibe dieses tool nur neben meiner eigentlichen Tätigkeit.

Gruß Esto

04.12.2011 - 20:11 Uhr

Wunderbar DANKE dir!!! Echt super Sache, genau danach habe ich gesucht. Besten Dank!