Autor Beitrag
Stecky2000
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 51



BeitragVerfasst: Mi 21.02.18 11:14 
Hallo allerseits, wie der Titel schon sagt, überlege ich ob ich nach Jahren mit Delphi jetzt c# lerne.

Ich bin kein besonders toller Programmierer, eher Gelegenheits-Hobby-Programmierer und habe mir damals Delphi 2010 Pro gekauft.
Damit habe ich ein paar Anwendungen für meinen Job programmiert, da werden Diagramme berechnet und dargestellt, Daten aus Excel 2010/2013 oder über .csv Dateien eingelesen und ebenso .csv Dateien geschrieben oder auch Daten per OLE (?) direkt in geöffnete Excel-Dateien geschrieben (Excel fernsteuern). Auch drucke ich die Diagramme über Rave-Report aus.

Das hat alles gut funktioniert, doch nun habe ich einen neuen PC mit Windows 10 und Office 2016 und da funktioniert die Zusammenarbeit mit Excel 2016 überhaupt nicht mehr. Wie ich an verschiedenen Stellen gelesen habe ist da die Zusammenarbeit Delphi - Excel 2016 ein Problem und funktioniert wohl nun total anders. Vorher mit einer Excel2000.TLB die es wohl für Excel2016 nicht gibt.

Nun überlege ich halt, ob ich nicht komplett neu anfange und mit MS Visual Studio 2017 (kostenlos?) von vorne anfange.

Und genau da habe ich eine Frage an das Forum: Wenn ich mit Visual Studio unter .NET Excel anspreche, gibt es da zwischen Excel 2010/2013 und Excel 2016 Unterschiede oder wird das über .NET sozusagen übersetzt und macht von der Programmierung keine Unterschied?

Es wäre halt blöd wenn ich dann was programmiere das auf Excel 2010 funktioniert und bei Excel 2016 nicht. Ich will ja nicht doppelt programmieren.

Könnt Ihr dazu was sagen?

Danke schon mal.


Moderiert von user profile iconTh69: Topic aus C# - Die Sprache verschoben am Mi 21.02.2018 um 11:14
Frühlingsrolle
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2006
Erhaltene Danke: 366

[Win NT] 5.1 x86 6.1 x64
[Delphi] 7 PE, 2006, 10.1 Starter, Lazarus - [C#] VS Exp 2012 - [Android API 15] VS Com 2015, Eclipse, AIDE - [C++] Builder 10.1
BeitragVerfasst: Mi 21.02.18 12:23 
Guten Tag Stecky2000,

die COM Bibliothek solltest du sowohl im Delphi als auch im Visual Studio vorfinden:

dcs_office

Ich habe hier nur Office 2010 installiert.
Sollte explizit für Excel2016 eine eigene Bibliothek gegeben sein, dann macht es keinen Unterschied, ob nun über Delphi oder VS darauf zugegriffen wird.
Einloggen, um Attachments anzusehen!
_________________
„Politicians are put there to give you the idea that you have freedom of choice. You don’t. You have no choice. You have owners. They own you. They own everything." (George Denis Patrick Carlin)
Delphi-Laie
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1525
Erhaltene Danke: 212


Delphi 2 - RAD-Studio 10.1 Berlin
BeitragVerfasst: Mi 21.02.18 16:17 
user profile iconStecky2000 hat folgendes geschrieben Zum zitierten Posting springen:
Könnt Ihr dazu was sagen?


Ein wenig bezweifele ich, ob bzw. daß die Motivation, eine andere Programmiersprache allein deshalb zu erlernen, weil "eine" Angelegenheit angeblich, vermeintlich oder tatsächlich nicht oder nicht richtig funktioniert, ausreicht. Ist das nicht fast ein bißchen mit Kanonen auf Spatzen geschossen?

Denn mache Dir nichts vor: Es wird zumindest etliche, bei einem Hobbyprogrammierer gar viele Monate dauern, bis die Programmiergeschwindigkeit in der neuen Sprache auch nur halbwegs an das bisher erreichte und gewohnte - und gerade bei Pascal / Delphi leicht reaktivierbare - heranreicht.

So sehr mich auch bestimmte Dinge in den C-Sprachen reizen, so wenig konnte ich mich deshalb bis heute dazu aufraffen, mir das ernsthaft anzueigenen zu versuchen.

_________________
Ordnung ist das halbe Leben - und sie zu schaffen die andere Hälfte.

Für diesen Beitrag haben gedankt: mandras
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4262
Erhaltene Danke: 851


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mi 21.02.18 19:25 
Zitat:
Wenn ich mit Visual Studio unter .NET Excel anspreche, gibt es da zwischen Excel 2010/2013 und Excel 2016 Unterschiede oder wird das über .NET sozusagen übersetzt und macht von der Programmierung keine Unterschied?

Die Schnittstelle ist die gleiche. Insofern sind die Probleme auch die gleichen. Wenn du es in .Net einfach haben willst mit dem Office Interop bist du auch in der gleichen Versionabhängigkeit.
Wenn du etwas einfaches Versionsunabhängiges möchtest solltest du zu 3th-Party Lösungen greifen. Add-In-Express gibt es z.B. für .Net aber auch für Delphi (ob letzteres gut is weiß ich nicht die .Net Variante ist aber empfehleswert).
doublecross
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 113
Erhaltene Danke: 23

Windows 7
C#; Visual Studio 2015
BeitragVerfasst: Do 22.02.18 19:11 
Hallo Stecky2000,

ohne dass ich in dem gearbeitet hätte, kann ich mir auch kaum vorstellen, dass die Automatisierung von Excel mit Delphi generell nicht mehr möglich sein soll. Eventuell kann ich mir aber vorstellen, dass es mit der relativ alten Version die du verwendest, problematisch wird, wenn Windows 10 da die eine oder andere Schnittstelle kappt.

Deine Motivation eine neue Sprache zu lernen halte ich somit auch für nicht überzeugend. Im Gegensatz zu meinen Vorrednern möchte ich dir aber nicht davon abraten C# zu lernen, wenn du die Zeit und Lust dazu hasst.
Der Umstieg auf C# bietet dir neben vielen neuen zu lernen auch einige Vorteile. Insbesondere den, dass du ohne Mehrkosten auf neuere Versionen Updaten kannst, du wirst also weit weniger Wahrscheinlich in wieder in die Situation kommen in der du dich gerade wähnst, dass du aufgrund zu alter Werkzeuge ein Problem nicht mehr oder nur sehr umständlich lösen kannst. Hinzu kommt, dass viele der neueren Techniken die Arbeit wirklich einfacher machen. Ich möchte nur noch ungern mit XML-Dateien arbeiten ohne den Komfort, den mit Linq für XML bietet.

Ich selbst habe vor knapp zwei Jahren mit meinem ersten C# Projekt gestartet und empfinde Delphi mittlerweile an vielen Stellen als unnötig umständlich, wenn ich mal wieder damit arbeiten muss und dass, obwohl ich fast zwei Jahrzehnte mein Geld damit verdiente. Es mag sein, dass die aktuellen Delphi Versionen auch die tollen neuen Features bieten, aber sie sind einfach zu kostspielig um die Updatepfade mitzugeben. Generell gelingt es mir heute nicht mehr Vorteile bei Delphi zu entdecken, außer vielleicht bei der Cross-Plattform Entwicklung, aber die dürfte für dich als Office Fernsteuerer nicht relevant sein.

Also wie gesagt, dieses Posting soll dir einfach Mut machen es einmal auszuprobieren, nicht (nur) für dein jetzigen Projekt sondern für die Zukunft. Es kostet nichts und C# fühlt sich trotz einiger Syntaxähnlichkeiten nicht wie C/C++ an. Daher gibt es auch wenig Grund Angst davor zu haben ;).
hydemarie
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 381
Erhaltene Danke: 48



BeitragVerfasst: Do 22.02.18 22:38 
user profile iconStecky2000 hat folgendes geschrieben Zum zitierten Posting springen:
Hallo allerseits, wie der Titel schon sagt, überlege ich ob ich nach Jahren mit Delphi jetzt c# lerne.


Nein. Bleib bei Delphi. :)
Stecky2000 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 51



BeitragVerfasst: Fr 23.02.18 08:28 
Danke für die reichlichen Antworten, da ist ja alles dabei...;-)

Naja, fangen wir mal an darauf einzugehen...

Grundsätzlich könnte eine neuere Delphi-Version evtl. das Problem lösen, nur als Hobbyprogrammierer der dafür kein Geld sieht und eigentlich aber nur Tools für die Firma gestrickt hat, möchte ich nicht mehr so viel Geld investieren.

Mit meiner Delphi 2010 Version habe ich noch keinen Weg gefunden eine Excel2016.TLB zu generieren, ich bin mir nicht mal sicher ob das alles abdecken würde.
In der Firma arbeite ich z.Z. auf eine Win7 PC mit Excel 2013, demnächst soll umgestellt werden auf Win10 64bit mit weiterhin Excel 2013 (bit?).
Zuhause habe ich einen PC mit Win10 (64bit) und Excel 2016 (64bit). Ich stelle mir die Frage, ob ich, selbst wenn ich eine Excel2016.TLB hätte, eine Version programmieren könnte die sowohl auf meine Heim-PC läuft, weil dort programmiert, und auf der Arbeit auch?

Meine aktuell auf Win7/Excel2013 laufende Version startet auf dem Win10/Excel2016 nur mit Fehlermeldungen die darauf hindeuten, dass einen Schnittstelle zu Excel 2016 fehlt.

Wen ich dann lese, dass Visual Studio mit .Net arbeitet und es quasi egal ist welche Windows und Excel Version dahinterliegen (habe ich das richtig verstanden?), dann würde sich ggf. der Aufwand lohnen auf C# zu gehen. Ich habe irgendwo gelesen (Delphi-Forum) dass C# für Delphi Programmierer relativ einfach zu lernen wäre...
ssb-blume
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 338
Erhaltene Danke: 6

XP, W7, W8
Deutschland
BeitragVerfasst: Fr 23.02.18 10:29 
Ja, mach das und lerne C#!

Ich habe das noch mit 70 Jahren gemacht, weil mir Delphi zu viele Ecken und Kanten hat. Der Entwickler von C# hat sich Delphi als Ausgangspunkt genommen, Ordnung gemacht und es ist, wenn man sich einige Dinge angewöhnt hat (Klein/Großschreibung) nicht viel anders.
Besonders gut finde ich, das alles was programmiert wurde, sowohl veröffentlich werden kann und DLLs eigentlich unsichtbar, aber immer mit in der exe sind.
Ich habe im Laufe der Zeit alle meine Delphi-Programme umgestellt, ist nicht schwer!
Außerdem wird das Hirn in Bewegung gehalten, wenn man immer mal was Neues lernt.

Hansi

_________________
Brain: an apparatus with which we think we think.
OlafSt
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 451
Erhaltene Danke: 83

Win7, Win81, Win10
Tokyo, VS2017
BeitragVerfasst: Fr 23.02.18 11:12 
Ich persönlich habe vor ein paar Jahren mal im Krankenhaus gelegen und die Langeweile war fast tödlich für meinen Verstand... Also habe ich mir n Notebook bringen lassen und C# gelernt. Das war alles, nur kein Fehler.

Nach guten 30 Jahren mit Delphi fühlte (und fühle) ich mich in C# fast durchgehend "wie zu Hause". Viele Konstrukte und Syntaxelemente "fühlen sich bekannt an". Hat man die andersartigen Dinge wie geschweifte Klammern, das merkwürdige for-Statement und - ganz besonders schwierig für mich - das "nicht mehr hinter dir aufräumen" verinnerlicht, macht es richtig Spaß.

Mal davon abgesehen, das es den Geist wach hält (wie @ssb-blume es sehr richtig beschrieben hat) ist es vielleicht auch etwas zunkunftsträchtiger als Delphi. In jedem Falle bist du, was die neuesten Technologien angeht, mit C# immer ganz, ganz vorne dabei.

_________________
Lies, was da steht. Denk dann drüber nach. Dann erst fragen.
Delphi-Laie
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1525
Erhaltene Danke: 212


Delphi 2 - RAD-Studio 10.1 Berlin
BeitragVerfasst: Fr 23.02.18 12:25 
user profile icondoublecross hat folgendes geschrieben Zum zitierten Posting springen:
Im Gegensatz zu meinen Vorrednern möchte ich dir aber nicht davon abraten C# zu lernen, wenn du die Zeit und Lust dazu hasst.


Das kann nur mir gegolten haben, trifft es aber dennoch nicht. Ich hinterfragte lediglich , ob das Aufwands-Nutzen-Verhältnis für die Motivation ausreicht.

_________________
Ordnung ist das halbe Leben - und sie zu schaffen die andere Hälfte.
Frühlingsrolle
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2006
Erhaltene Danke: 366

[Win NT] 5.1 x86 6.1 x64
[Delphi] 7 PE, 2006, 10.1 Starter, Lazarus - [C#] VS Exp 2012 - [Android API 15] VS Com 2015, Eclipse, AIDE - [C++] Builder 10.1
BeitragVerfasst: Fr 23.02.18 12:53 
user profile iconStecky2000 hat folgendes geschrieben:
Wen ich dann lese, dass Visual Studio mit .Net arbeitet und es quasi egal ist welche Windows und Excel Version dahinterliegen (habe ich das richtig verstanden?),[...]

Nein, das hast du nicht richtig verstanden.
Der verlinkte Beitrag von Ralf Jansen zu Add-In-Express bietet dir eine Möglichkeit auf, Office versionsübergreifend mit Delphi(VCL) und mit VisualStudio(.NET) anzusteuern, je nachdem, wofür du dich entscheidest.
Dieses AddIn würde sich mit seinen mind. ~300€ (exkl. Steuern) schon lohnen.

Deine gesuchte .TLB solltest du in der Liste vorfinden, als: Microsoft Office/Excel 16.0 Object Library.
Mit dieser Version scheint es aber Probleme zu geben. Und so wie hier beschrieben, kann man es beheben.
Und nochmal: Diese COM Bibliothek gilt für Delphi und für VisualStudio gleichermaßen.

_________________
„Politicians are put there to give you the idea that you have freedom of choice. You don’t. You have no choice. You have owners. They own you. They own everything." (George Denis Patrick Carlin)
doublecross
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 113
Erhaltene Danke: 23

Windows 7
C#; Visual Studio 2015
BeitragVerfasst: Mi 28.02.18 17:30 
Hallo,

user profile iconDelphi-Laie hat folgendes geschrieben Zum zitierten Posting springen:
Das kann nur mir gegolten haben, trifft es aber dennoch nicht. Ich hinterfragte lediglich , ob das Aufwands-Nutzen-Verhältnis für die Motivation ausreicht.

das galt eher den allgemeinen Tenor den ich meinte aus den vorherigen Antworten heraus gelesen zu haben. Ich wollte nur eine Lanze für c# brechen, da es gerade im (halb) privaten Bereich meiner Ansicht nach kaum noch gründe gibt an Delphi festzuhalten.

@user profile iconStecky2000: Ich fürchte user profile iconFrühlingsrolle hat recht, der Wechsel auf C# wird dein Problem nicht direkt lösen. Die Arbeitsweise per OLE fremdprogramme fernzusteuern ist immer Problematisch, gerade wenn es mit verschiedenen Versionen funktionieren soll. Dann musst du dich entweder auf den kleinsten gemeinsammen Nenner einigen oder Verschionsweichen einbauen, völlig Egal in welcher sprache du das implementierst.

Eventuell wäre zu überdenken ob das Fernsteuern der richtiger Weg ist, oder ob man die Dateien nicht selbst schreiben möchte. Auch dafür gibt es Bibliotheken z. B. EPPlus (kostenlos) oder wenn es was kosten darf auch mit der Möglichkeit das auch einfach zu Visualisieren in den DevExpress Komponenten. Ob die alles abdecken was du vorhast kann ich aber nicht beurteilen, wenn du aber nach solchen Komponenten suchst würde ich deine Chancen in der .NET Welt als größer ansehen, als in der Delphi Welt, insbesondere wenn es um den Support neuerer Versionen geht.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 18600
Erhaltene Danke: 1596

W10 x64 (Chrome, IE11)
Delphi 10.1 Ent, Oxygene, C# (VS 2015), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 01.03.18 16:51 
Da die bis 1000 Dollar Jahresumsatz kostenlose Delphi Starter Edition auch die Möglichkeit hat solche Komponenten zu importieren, würde ich es einmal damit versuchen. Dann hättest du auch gleich eine aktuelle Version.

_________________
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!