Laden...
L
Lion1984 myCSharp.de - Member
Entwickler Österreich Dabei seit 05.10.2006 770 Beiträge
Benutzerbeschreibung
2. Platz beim 1. myC# Programmierwettbewerb

Forenbeiträge von Lion1984 Ingesamt 770 Beiträge

19.08.2009 - 09:26 Uhr

Hallo,

ja das war von mir falsch "verstanden", ich dachte die geben einen Int Wert oder ähnliches zurück, hatte ich falsch verstanden, sorry.

Lion

19.08.2009 - 08:30 Uhr

Wenn du dir den Code selbst erstellst, dann wirst du wohl zwei Funktionen brauchen. Eine, die dir den String in eine Zahl umwandelt, und eine Andere, die die Summe dann darstellt.

Also Funktion1(SUM(Funktion2(Feld)))

Funktion2 = Umrechung in eine Zahl
Funktion1 = Darstellung einer Zahl als String

Hast du dir DateValue angeschaut? Das wäre doch das passende oder?

Lion

19.08.2009 - 08:23 Uhr

Schreibe dir eine geeignte Funktion, die den String in eine passenden Wert umberechnet, summiere den und stelle diesen Wert richtig dar.

Oder du verwendest die Report Funktion "DateValue".

Returns a Date value containing the date information represented by a string, with the time information set to midnight (00:00:00).

Sollte wohl auch zum Ziel führen.

Lion

18.08.2009 - 07:58 Uhr

Nein, sowas kann nicht mit der Klasse erledingen.

Hast du schon mal die Forum suche verwendet? Ich kann dir leider nicht helfen, aber wenn ich nach "Outlook Ordner" suche, finde ich u.a.
Zugriff auf Ordnerstruktur

Lion

17.08.2009 - 11:46 Uhr

Hallo & Willkommen Ivacy,

also ich kann gegen das OpenBook nichts sagen, ich bin damit zureckt gekommen. Aber auch hier gibt es mehr als ein Buch (links unter "Ressourcen").

Ansonsten solltest du mit dem Suchbegriff "Anfänger Buch" ziemlich viel in diesem Forum hier finden 😃

Lion

11.08.2009 - 11:48 Uhr

Dumm halt wenn man der Ruderer ist 😃

11.08.2009 - 09:40 Uhr

Hallo FZelle,

danke für deine Antwort, ich wollte mir nun nicht eine extra Anwendung für dieses Reporting entwicklen (Reports sollen in der eigentliche Anwendung nicht enthalten sein), daher die Anfrage nach dem Designer.

Denn Report Builder wollte ich haben, denn dann könnte ich dem Benutzer, der dieses wollte (nur einer) den in die handdrücken und sagen "mach". Andersrum muss ich wieder eine Anwendung erstellen, die einen/mehrere Reports beinhaltet und dementsprechend die Klassen dazu. Daher die nachfrage nach dem Report Builder, der hier wähnt wird.

Also um es eventuell klarer ausdrücken:**.sdf Dateien vorhanden *1 User, welcher Reports erstellen / ansehen kann *möglichst nichts neues dazu Entwickeln

Ich will nicht bei jeder Änderung den Report selbst im VS abändern müssen, dass sollte er doch selbst machen können, und ich denke, genau dafür wäre der Report Builder gedacht, nur ich finde ich nirgends 😦

Lion

11.08.2009 - 09:02 Uhr

verwendetes Datenbanksystem: MS SQL Compact Edition 3.5

Hallo Forum,

ich habe einige kleinere Anwendungen, die auf MSSQL CE 3.5 aufbauen bzw. diesen auch verwenden. In einigen Projekten gibt es auch eine Art "History", für diese ich nun einen Reports erstellen kann.

Ich dachte mir, gut, suchen wir einmal 😃 Aber leider war meine Suche nicht erfolgreich, mit was bzw. wie kann ich einen Report für Daten aus einer MSSQL CE 3.5 Datenbankdatei erstellen?

Die Suche nach einen Downloadlink bei MS von Server 2008 Report Builder 2.0 RC1 war ebenfalls erfolglos (wurde schon öfters hier im Forum erwähnt). Eventuell wär es mit diesem möglich.

Bisherige Stichwörter waren "Report Desigern, Report, MSSQL CE, Compact Edition, 3.5" in allen Möglichen varationen.

Lion

06.08.2009 - 10:19 Uhr

Hallo,

Dank Florian's Hilfe habe ich meine Probleme gelöst, um nun auch mein neu erworbenes Wissen zu verbreitern, schreib ich es auch hier nieder 😃

Problem war, dass meinee Query sehr lange lief und 99% CPU Auslastung verursachte (und das bei jeder Query, auch wenn diese schon mal gelaufen ist).

Der Grund hierfür waren z.T. sehr tief verschachtelte Queries (wie z.B. das obrige SQL Statement) und sehr häufige Code wiederholungen.

Abhilfe waren CTE's und statt der PIVOT eine CROSS TAB Query, für mich hies das: PIVOT "überschätzt" (in meinem Fall), CTE's unterschätzt. Ich habe meinen Code um ca 50% Zeilen kürzen können und das Statement läuft mit zufriedener Geschwindigkeit.

In diesem Zusammenhang möcht auch zwei Links posten, welche mir bei den CROSS TAB Query sehr geholfen haben.

Cross Tabs and Pivots, Part 1 – Converting Rows to Columns
Cross Tabs and Pivots, Part 2 - Dynamic Cross Tabs

Danke an allen Helfern!
Lion

04.08.2009 - 13:35 Uhr

Hallo Florian,

danke für die Links, ich werde mir diese durchlesen.
Zur Erklärung, ich habe aktuell eine Abfrage gebastelt, welche als "normales" Statement funktioniert (d.h. auf der DB im Managment Studio rechte Maustaste, new Query, Statement reinkopiert), und das relativ perfomant.

Kopiere ich das selbe Statement in eine Stored Procedure, dann schnallzt mir der SQL Server auf 99% CPU Auslastung und bleibt da, bis die Abfrage fertig ist (>10sek).

Und da versuche ich, das Problem zu identifizieren und zu lösen, und u.a. war eben dies Union Statement für mich fragwürdig. Ich werde es mal mit einer Tabelle versuchen, wobei ch denke, dass der Hund woanders begraben ist.

Lion

04.08.2009 - 12:10 Uhr

Special Promotion for all active MSDN subscribers

Schade das ich aktuell kein MSDN Abo habe 😦

04.08.2009 - 07:20 Uhr

Stimmt,

ich hatte woanders einen Fehler drinnen, und daher hatte ich auch die Probleme. Ich habe das Statement nun in Verwendung.

An die SQL Profis: Was wäre besser? Perfomancetechnisch?
Bzw. wie kann ich die Abfrage genau messen? Denn es scheint, dass die Abfrage nun ein Stück langsamer ist.

Lion

03.08.2009 - 14:03 Uhr

Hallo dN!3L,

danke für deine Antwort, aber das habe ich auch versucht, funktioniert für sich selbst alleine, aber wenn ich es versuche, zu joinen (erste Zeile --> RIGHT OUTER JOIN) gibt es Probleme mit dem ";". Und ohne erhalte ich die Meldung, dass das Statement zuvor abgeschlossen sein soll.

Also ich brauch nicht eine "einfache" Ausgabe, ich brauch es in Verbindung mit dem JOIN.

Eine Tabelle wollte ich vermeinden, wo ich "einfach" pro Tag einen DS habe, weil ich gedacht habe, es muss doch auch so gehen.

Gruß,
Lion

03.08.2009 - 13:21 Uhr

Hallo Forum,

verwendetes Datenbanksystem: MS SQL 2005.

ich möchte gerne eine Abfrage für mehere Tage machen (ab "heute" die nächsten 30 Tage). Hier möchte ich aber auch, wenn es für einen Tag keine Daten gibt, dass dieser angezeigt wird. Eine Tabelle für die Daten habe ich nicht, daher mache ich die Abfrage so:

RIGHT OUTER JOIN
(
SELECT (CONVERT(VARCHAR(12), @StartDate, 112)) As Date, 'xxx' as Type UNION
SELECT (CONVERT(VARCHAR(12), DATEADD(day,1, @StartDate), 112)) As Date, 'xxx' as Type UNION
SELECT (CONVERT(VARCHAR(12), DATEADD(day,2, @StartDate), 112)) As Date, 'xxx' as Type UNION
SELECT (CONVERT(VARCHAR(12), DATEADD(day,3, @StartDate), 112)) As Date, 'xxx' as Type UNION
SELECT (CONVERT(VARCHAR(12), DATEADD(day,4, @StartDate), 112)) As Date, 'xxx' as Type UNION
SELECT (CONVERT(VARCHAR(12), DATEADD(day,5, @StartDate), 112)) As Date, 'xxx' as Type UNION
SELECT (CONVERT(VARCHAR(12), DATEADD(day,6, @StartDate), 112)) As Date, 'xxx' as Type UNION
SELECT (CONVERT(VARCHAR(12), DATEADD(day,7, @StartDate), 112)) As Date, 'xxx' as Type UNION
SELECT (CONVERT(VARCHAR(12), DATEADD(day,8, @StartDate), 112)) As Date, 'xxx' as Type UNION
SELECT (CONVERT(VARCHAR(12), DATEADD(day,9, @StartDate), 112)) As Date, 'xxx' as Type UNION
SELECT (CONVERT(VARCHAR(12), DATEADD(day,10, @StartDate), 112)) As Date, 'xxx' as Type UNION
SELECT (CONVERT(VARCHAR(12), DATEADD(day,11, @StartDate), 112)) As Date, 'xxx' as Type UNION
SELECT (CONVERT(VARCHAR(12), DATEADD(day,12, @StartDate), 112)) As Date, 'xxx' as Type UNION
SELECT (CONVERT(VARCHAR(12), DATEADD(day,13, @StartDate), 112)) As Date, 'xxx' as Type UNION
SELECT (CONVERT(VARCHAR(12), DATEADD(day,14, @StartDate), 112)) As Date, 'xxx' as Type UNION
SELECT (CONVERT(VARCHAR(12), DATEADD(day,15, @StartDate), 112)) As Date, 'xxx' as Type UNION
SELECT (CONVERT(VARCHAR(12), DATEADD(day,16, @StartDate), 112)) As Date, 'xxx' as Type UNION
SELECT (CONVERT(VARCHAR(12), DATEADD(day,17, @StartDate), 112)) As Date, 'xxx' as Type UNION
SELECT (CONVERT(VARCHAR(12), DATEADD(day,18, @StartDate), 112)) As Date, 'xxx' as Type UNION
SELECT (CONVERT(VARCHAR(12), DATEADD(day,19, @StartDate), 112)) As Date, 'xxx' as Type UNION
SELECT (CONVERT(VARCHAR(12), DATEADD(day,20, @StartDate), 112)) As Date, 'xxx' as Type UNION
SELECT (CONVERT(VARCHAR(12), DATEADD(day,21, @StartDate), 112)) As Date, 'xxx' as Type UNION
SELECT (CONVERT(VARCHAR(12), DATEADD(day,22, @StartDate), 112)) As Date, 'xxx' as Type UNION
SELECT (CONVERT(VARCHAR(12), DATEADD(day,23, @StartDate), 112)) As Date, 'xxx' as Type UNION
SELECT (CONVERT(VARCHAR(12), DATEADD(day,24, @StartDate), 112)) As Date, 'xxx' as Type UNION
SELECT (CONVERT(VARCHAR(12), DATEADD(day,25, @StartDate), 112)) As Date, 'xxx' as Type UNION
SELECT (CONVERT(VARCHAR(12), DATEADD(day,26, @StartDate), 112)) As Date, 'xxx' as Type UNION
SELECT (CONVERT(VARCHAR(12), DATEADD(day,27, @StartDate), 112)) As Date, 'xxx' as Type UNION
SELECT (CONVERT(VARCHAR(12), DATEADD(day,28, @StartDate), 112)) As Date, 'xxx' as Type UNION
SELECT (CONVERT(VARCHAR(12), DATEADD(day,29, @StartDate), 112)) As Date, 'xxx' as Type UNION
SELECT (CONVERT(VARCHAR(12), DATEADD(day,30, @StartDate), 112)) As Date, 'xxx' as Type UNION
SELECT 'Total' As Date, 'xxx' as Type

Meine Frage ist einfach, geht es besser mit "einfachen" Boardmittel?

29.07.2009 - 12:19 Uhr

Januar :
Habe den neuen Schal zurück in den Laden
gebracht, er war zu eng.

Februar :
Wurde von der Bäckerei gefeuert, weil ich
keine Torten beschriften kann.

Halllooo?!?...Die Torte paßte einfach nicht
in die Schreibmaschine!

März :
War sehr aufgeregt, habe ein Puzzle in 6
Monaten fertig gestellt... Auf der Schachtel
stand "2-4 Jahre"!

April :
Auf der Rolltreppe für Stunden
festgesessen... Der Strom war ausgefallen!

Mai :
Versuchte Marmelade zu machen... ist das
anstrengend, all die Berliner zu schälen!

Juni :
Wollte Wasserski fahren... Habe keinen See
mit Abhang gefunden.

Juli :
Habe beim Brustschwimm-Wettbewerb
verloren...
später ist mir aufgefallen, daß die anderen
Schwimmer betrogen haben, die haben ihre
Arme
benutzt!

August :
Habe mich während eines Gewitters aus meinem
Auto ausgesperrt ... Das Auto ist
vollgelaufen, weil das Cabrio-Dach offen
war...

September :
Ich suche immer noch den Heinz in der
Ketchupflasche...

Oktober :
Ich hasse M&Ms... Die sind übel zum Schälen.

November :
Habe die Weihnachtsfeier auf dem Dach
verbracht - auf der Einladung stand:
"Alle Getränke gehen aufs Haus"...

Dezember :
Konnte die 112 nicht anrufen... pah... Es
gibt keine "Elf"-Taste auf diesem
blöden Telefon!

22.07.2009 - 11:21 Uhr

Hallo multitrust,

schon mall dtSelectedTask.Rows.Add(newDataRow) versucht?

Lion

19.07.2009 - 16:31 Uhr

Dann such dir ein Control, dass PDFs anzeigen kann und eben diese Eigenschaft unterstützt. 😃

19.07.2009 - 16:13 Uhr

Welches Problem hast du den noch?

Es ist wohl egal, ob du die Datei direkt anzeigst oder runter lädst, das "Problem" mit den verschiedenen Leisten hast du dennoch, egal ob runter geladen oder nicht.

Lion

09.07.2009 - 12:35 Uhr

Nicht nur das, sondern gibt es das Projekt anscheind unter:

http://www.ploetzeneder.eu/softwareentwicklung/cvbnet.html

Aber ein schönes Beispiel, warum man Source oder ähnliches im Forum uploaden sollte 😃

09.07.2009 - 08:39 Uhr

Die Linke kannst du mit Rechte Maustaste ausblenden (einfach links auf die NavBar rechte Maustaste, dann gibt es den Menüpunkt ausblenden).

Aber wie gesagt, dass sind Programmweite Einstellungen bzw. sollte sich der Benützer selbst überlegen, ob er diese haben möchte oder nicht. Mir kommt z.B. kein Programm auf den Rechner, der mir Einstellungen verändert und ich diese manuell zurückstellen muss.

Einfach mal so was abstellen ohne eine Info oder ähnliches finde ich gar nicht gut.
Oder darf ich dir ein Programm senden, dass dir deine Word-, Outlook- und noch ander Einstellungen verändert? Einfach so? 😃

Lion

07.07.2009 - 16:06 Uhr

Welche Schaltflächen meinst du ?

Die von Adobe kannst du einfach ausblenden lassen (z.B. F8 für die obere Leiste).
Hier musst du aber aufpassen, ich vermute diese Einstellung gilt nicht nur für eine einzelne Datei.

Sicher kannst du die Datei auch runterladen, aber ich vermute, die Leisten wirst du weiterhin sehen, da dies, wie gesagt, eine Adobe Reader Einstellung ist.

Lion

07.07.2009 - 15:03 Uhr

Ich kenne zwar Oracle nicht, aber beim SQL Server verwende ich ISNULL.
Die Funktion gibt einen angegebenen Wert aus, wenn der Wert der Zelle null ist.

z.B. bei Fortlaufenden Zahlen, bei dennen das Feld leer ist, schreibe ich (ISNULL(spalte, -1).

Vermute mal so eine ähnliche Funktion gibt es für Oracle. Natürlich muss man anschließend aufpassen, wenn man mit diesem Wert weiterarbeiten möchte.

Lion

07.07.2009 - 12:20 Uhr

Already 997 308 372 inhabitants in 2 685 366 cities in 587 days!

Ich denke mal, man kann mit mindestens 1% "Cheater" rechnen, denn wenn einer was einsetzt, dann erzählt er das seinen Freund, und der seinen Freund usw.

Von daher finde ich, wir liegen gar nicht mal so schlecht, und auch ich liefere tgl. 1 Click ab 😃

Lion

06.07.2009 - 14:42 Uhr

Feuerwehrmänner/-frauen haben doch einen Piepser, ich glaube nicht, dass die sich dadurch informieren lassen. (Oder nicht nur).

Ich habe das Programm nicht getestet, aber in deinen Screenshot erkenne ich "intranet", ist dieser Servive von ausserhalb zugänglich oder nicht? Intranets sind doch meistens abgeschottert.

Lion

26.06.2009 - 12:40 Uhr

Reicht nicht der verlinkte Post um Mitstreiter zu suchen?

Ich bin den jetzt nur überflogen, aber eigentlich ist dein erster Post im Thread fast identisch mit dem hier.

Lion

24.06.2009 - 15:40 Uhr

das array is gefüllt mit zahlen von 1 bis 15

erspare dir doch das Array und multipliziere direkt mit der Zahl aus der Random Klasse. Der Link wurde schon genannt 😃

[OFF]
Soryr bin noch net lang dabei im Direct3D 😕

Was davon hat mit Direct3D zu tun?

17.06.2009 - 11:06 Uhr

Beides kannst du dir selbst beantworten, indem du dir das FAQ durchschaust. Darin werden beide Fragen / Fehler behandelt.

Lion

17.06.2009 - 09:20 Uhr

Hat sich eben erübrigt, bei den gestrigen Tipps war auch der Hinweiß auf "SET NOCOUNT ON" dabei, denn ich gestern verwendet hatte, aber anscheind nicht gespeichert hatte.

Nun habe ich diese Option wieder hinzugefügt, und es flitzt wieder dahin.
Lion

P.S. diese Tipps kamen von Kollegen, die einige Jahre länger schon mit SQL zu tun hatten, d.h. ich bin mir nicht sicher ob es DIE Lösung ist, aber die Beschreibung von SET NOCOUNT ON scheint für mich passend zu sein, um das auch zu verwenden.

17.06.2009 - 09:14 Uhr

verwendetes Datenbanksystem: MS SQL 2005

Hallo Forum,

ich habe gestern eine Abfrage für einen Report geschrieben, welche eigentlich nur einen Wert übers Jahr ausgibt. Diese sieht wiefolgt aus:

Die Abfrage sieht so aus:

SELECT 
	CASE [CheckoutMonth]
		WHEN 1 THEN 'January'
		WHEN 2 THEN 'February'
		WHEN 3 THEN 'March'
		WHEN 4 THEN 'April'
		WHEN 5 THEN 'May'
		WHEN 6 THEN 'June'
		WHEN 7 THEN 'July'
		WHEN 8 THEN 'August'
		WHEN 9 THEN 'September'
		WHEN 10 THEN 'October'
		WHEN 11 THEN 'November'
		WHEN 12 THEN 'December'
	END as 'Month',
	ISNULL([1],0) as '1', 
	ISNULL([2],0) as '2',
	ISNULL([3],0) as '3',
	ISNULL([4],0) as '4',
	ISNULL([5],0) as '5',
	ISNULL([6],0) as '6',
	ISNULL([7],0) as '7',
	ISNULL([8],0) as '8',
	ISNULL([9],0) as '9',
	ISNULL([10],0) as '10',
	ISNULL([11],0) as '11',
	ISNULL([12],0) as '12',
	ISNULL([13],0) as '13',
	ISNULL([14],0) as '14',
	ISNULL([15],0) as '15',
	ISNULL([16],0) as '16',
	ISNULL([17],0) as '17',
	ISNULL([18],0) as '18',
	ISNULL([19],0) as '19',
	ISNULL([20],0) as '20',
	ISNULL([21],0) as '21',
	ISNULL([22],0) as '22',
	ISNULL([23],0) as '23',
	ISNULL([24],0) as '24',
	ISNULL([25],0) as '25',
	ISNULL([26],0) as '26',
	ISNULL([27],0) as '27',
	ISNULL([28],0) as '28',
	ISNULL([29],0) as '29',
	ISNULL([30],0) as '30',
	ISNULL([31],0) as '31'
FROM
(
	SELECT
		Month(DateTimeField) as CheckoutMonth,	
		SUM(DataField),
		DAY(DateTimeField) as CheckoutDay
		
	FROM 
		(
			SELECT 
				DateDiff(dd,a.DateTimeField1,a.DateTimeField2) AS LOR,
				a.DateTimeField1
			FROM
				TableA AS a WITH (NOLOCK) LEFT OUTER JOIN
					TableB AS b WITH (NOLOCK) ON a.columnA = b.columnA AND 
						a.columnB < b.columnB
			WHERE     
				(b.columnB IS NULL)
					AND intField = @intValue
					AND stringField1 != 'XX'
					AND stringField2 != 'XX' ) data
	WHERE 
		YEAR(DateTimeField1) = @year
	
	GROUP BY Month(DateTimeField1), DAY(DateTimeField1)

	UNION 
		SELECT 1 , 0,  1 as CheckoutDay UNION
		SELECT 2 , 0,  1 as CheckoutDay UNION
		SELECT 3 , 0,  1 as CheckoutDay UNION
		SELECT 4 , 0,  1 as CheckoutDay UNION
		SELECT 5 , 0,  1 as CheckoutDay UNION
		SELECT 6 , 0,  1 as CheckoutDay UNION
		SELECT 7 , 0,  1 as CheckoutDay UNION
		SELECT 8 , 0,  1 as CheckoutDay UNION
		SELECT 9 , 0,  1 as CheckoutDay UNION
		SELECT 10 , 0,  1 as CheckoutDay UNION
		SELECT 11 , 0,  1 as CheckoutDay UNION
		SELECT 12 , 0,  1 as CheckoutDay 		
) s
PIVOT 
(
	SUM([DataField])
	FOR CheckoutDay IN ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12], [13], [14], [15], [16], [17], [18], [19], [20], [21], [22], [23], [24], [25], [26], [27], [28], [29], [30], [31])
) p

TableA und TableB sind die selben Tabellen, nur muss ich den letzten Datensatz für ein "Produkt", "Kunde" oder ähnliches herausfiltern.

Die Abfrage funktioniert wunderbar, habe daraus eine SP gemacht und sie funktioniert einwandfrei aus dem Managment Studio. Nun habe ich mir mit dem Report Builder einen Report drum herum gebastelt, und dort braucht die Abfrage ewig lange und der SQLServer läuft mit 99% Auslastung. Nach einigen Tipps habe ich NOLOCK eingebaut, welches anschließend auch funktionierte. Die Abfrage war auch im Report Builder auch schnell.

Heute habe ich gecheckt, ob der Report auch so ist, wie es der "Auftraggeber" möchte, und um ihn auf ein Produktivsystem zu implementieren, habe ich die SP umbenannt. Nun stehe ich wieder vor dem Problem, dass aus dem Managment Studio die Abfrage flitzt, aber aus dem ReportDesigner nicht, dort hängt es sich auf oder braucht ewiiiigg lange.

Es sind aktuell ca. 180000 Datensätze in dieser Tabelle.
Kann mir jemand sagen, woran es hier scheitert? Was macht der ReportDesigner anders, als das SQL Managment Studio?

Lion

15.06.2009 - 10:24 Uhr

Gibt es ja, aber so weit ich weiß kann man dort keine Kritieren angeben, welche er zählen soll.

15.06.2009 - 08:06 Uhr

Hallo,

es gibt ja div. CellClick Ereignisse, welche du verwenden könntest. In den Ereignisparameter steht meistens die ColumnID drin, die könntest du dann einfach mit dataGridView1.Columns["NamederSpalte"].Index prüfen ob es die richtige Spalte ist.

Gruß,
Lion

09.06.2009 - 12:42 Uhr

Von wo kommen den die Tagen? Falls von einer Datenbank könntest du doch die Abfrage direkt auf so eine Anforderung modifizieren?

Lion1984

11.05.2009 - 12:38 Uhr

Für jedes Datum kann es mehrere Values geben

Ähm? aber nicht im Dictionary, denn dort ist der schlüssel doch eindeutig, also müßtest du ein Array als Value haben (oder ähnliches).

Ansonsten gibt es doch bei Dot.Net 3.5 (dank den erweiterungs Funktionen) eine Funktion, die sich Average nennt?

Mal angenommen der Key ist ein Datum und Value eine Liste von int / doubles oder ähnliches.

            Dictionary<DateTime, List<int>> d = new Dictionary<DateTime, List<int>>();
            d[DateTime.Today] = new List<int>();
            d[DateTime.Today].Add(1);
            d[DateTime.Today].Add(4);
            d[DateTime.Today].Add(7);
            d[DateTime.Today.AddDays(1)] = new List<int>();
            d[DateTime.Today.AddDays(1)].Add(7);

            double aver = d[DateTime.Today].Average();

Eventuell hilft dir das ja weiter.
Ronny

28.04.2009 - 07:45 Uhr

Also ich finde, die Lösung wie EvilMM sie verwendet schon passend und auch gut gelöst, zumindest für mein Teil.

Nur bislang habe ich "für alle" und inkrementell gemischt, daher wohl auch mein durcheinander. Wenn man das weiß kann man ja von Anfang an gezielt auf einen der beiden Wege gehen.

Also ich bin glücklich und freue mich auf die neue 😉

27.04.2009 - 09:44 Uhr

Habe ich etwas versäumt?

Ich dachte, er lädt immer nur die nächst neue Version und nicht die aktuellste?
D.h. wenn ich für alle habe, und eine Version mit 1.0 draussen habe, kommt zuerst das Update von 2.0 bevor 2.1 dran kommt?

Ich glaube das Feature Relase habe ich verpasst 😃 Denn mit "dieser Vermutung" würde meine Aussage wiederrum stimmen 😃

27.04.2009 - 08:39 Uhr

Warum machst du keinen "einfachen" Workaround?

Du kannst bis zu 4 Stellen für eine Version verwenden, wenn du (nach deinem Beispiel) nur 3 verwendest, so würde ich hergehen, und die ersten 3stellen für die tatsächliche Programmversion verwenden und diese auch anzeigen.

Die 4te Stelle kannst du für solche "DLL Updates" verwenden, musst du ja im Programm nicht verwenden, schneide es einfach weg.

Zumindest habe ich es so gelöst 😃

@EvilMM, würde es nicht mehr Sinn machen, wenn du zuerst "für alle" prüfst? Denn wenn "für alle" markiert ist, dann brauchst du ja keine fall unterscheidung.

Ich glaube, die meisten Updates wären "für alle", dann hast du anstatt 3 Prüfungen, nur 1, zumindest würde das für mich logischer erscheinen, aber das heißt noch lang nicht, dass es tatsächlich logischer ist 😉

Gruss,
Lion

17.04.2009 - 07:05 Uhr

Ich sags ja immer wieder.. Weihnachten ist nicht immer am 24.12 😃

02.04.2009 - 12:35 Uhr

Wenn du Office installiert hast, dann könntest du eventuell das OCR von Office verwenden (Microsoft Office Document Imaging).

Das erkannte zumindest mal dein geschriebenen Text hier, auf Codeproject gibt es dazu etwas zu finden.

Lion

31.03.2009 - 10:01 Uhr

Hallo Herbivore,

das mit cmd habe ich eben auch um gesetzt und ausgetestet und wollte eben mein Thread dazu schreiben.

Mit RedirecTStandardOutput klappt es nicht bzw. ich krieg es nicht nicht, mit der cmd Version funktioniert es einwandfrei (eben 10 von 10 Versuchen ohne Probleme)

Lion

31.03.2009 - 07:43 Uhr

Nun wollte ich die Batchdatei umgehen, indem ich das Script file selbst schreibe, und anschließend FTP aufrufe, anstatt der Batch Datei.

Das mache ich bereits 😃 Ich schreibe mit die notwendige Schritte in eine Datei, und rufe anschließend ftp mit dieser Script Datei auf --> ftp -s:Datei

Aber anschließend findet sich darin auch nicht die gewünschte Ausgabe, sondern eben nur die Schritte, die unternommen werden sollten (open, binary, put, put, quit).

Lion

31.03.2009 - 07:30 Uhr

Hallo,

Weil ich eben eine protokollierung brauche, mein Wissenstand in allen Ehren, aber wenn ich das von ftp.exe habe, kann ich mir ziemlich sicher sein, dass die Datei tranferiert worden ist.

Würde ich es direkt machen, so müßte ich anschließend checken ob die Datei erfolgreich und komplett transferiert worden ist bzw. macht es ein Unterschied, ob ein komplett funktionierendes Programm (ftp.exe) den Erfolg anzeigt oder ich auf Grund "meines" Transfers, der u.a. auch schief gehen an und trotzdem "erfolgreich" meldet.

Die Idee es selbst zu machen hatte ich zwar auch, sah ich aber nicht zwingend nötig, da das mitgelieferte Windows FTP Programm alles kann, was ich brauche.

Wie gesagt, es funktioniert ja nun ohne Probleme, die Datei landet am Server, ich brauch nur die komplette Ausgabe.

Lion

31.03.2009 - 07:18 Uhr

Hallo,

String output = p.StandardOutput.ReadToEnd() 

ergibt:

Benutzer (*****.at:(none)): open host

binary
put D:***
put D:***
quit

String output = p.StandardError.ReadToEnd() 

ergibt:

Verbindung beendet durch Remotehost.

Also beides leider nicht das, was ich brauche.

Und ja, hatte ich bereits einmal versucht 😃

Lion

30.03.2009 - 16:10 Uhr

Ansonsten bin ich mir nicht sicher wie du deine Würfel - Routine aufgebaut hast, aber entweder ich hab einfach verdammt viel Glück, oder da stimmt was nicht, ich krieg so ziemlich bei jedem Spiel sämltiche Felder voll, ausg. das letzte "Yahtzee", aber auch das hatte ich im Verhältniss bereit sehr oft bekommen.

lg Lion

30.03.2009 - 15:38 Uhr

noch drei kleinere Dinge:* Der Link zu den Icons wird in der About - Box nicht ganz dargestellt. *Wenn das Spiel zu ende ist, kann ich trotzdem die Hackerl unter den Würfeln setze *Bei "New Game" fragst du nach, ob er wirklich ein neues Spiel anfangen möchte, ein Nein / Abbrechen setze ich hier als gleichwertig, reicht doch eines von beiden

Aber wie gesagt, mir gefällt es, ich spiel schon den ganzen Tag 😃

30.03.2009 - 14:59 Uhr

Ich hab ein Windows Programm, dass mit Process automatisch Dateien auf einen FTP transferiert.

Das klappt alles, die Datei landet tatsächlich auf den Server, nur ich brauche diese "protokollierung" (zu sehen im Screenshot), da die anschließend per eMail verwendet wird.

Aktuell habe ich den Standardoutput umgeleitet, wie folgt:

myprocess.Start()
                Dim myStreamReader As System.IO.StreamReader = myprocess.StandardOutput

Die nötigen bool - Werte sind dafür bei myprocess gesetzt:

 myprocess.StartInfo.RedirectStandardOutput = True
        myprocess.StartInfo.UseShellExecute = False

Wenn ich anschliend mit dem Reader arbeite, erhalte ich das oben zitierte Ergebniss, brauchen würde ich aber alles, also von open host bis zum quit (siehe Screenshot)

Lion

€dit: Einen Input gibt es nicht, da ftp.exe selbst per Scriptfile gesteuert wird.

30.03.2009 - 14:50 Uhr

Hallo Forum,

ich hab aktuell das Problem, dass ich automatisiert eine Datei auf einen Server übertragen soll, dies funktioniert auch schon einige Zeit lang.

Aktuell wird einfach bei bestimmten Ereignisse eine Batch Datei aufgerufen, welche anschließend ftp.exe aufruft mit einem Script File.

Wie gesagt, es funktioniert, jedoch nicht immer. Und zwar ist das Problem, dass er manchmal, wenn er ftp aufruft, bereits in ftp sich befindet, und dann schlägt der prozess fehl (weil der aufruf von ftp direkt in ftp selbst nicht funktioniert).

Der Aufruf der Batch daweil klappt immer korregt (zahlreiches debuggen). Nun wollte ich die Batchdatei umgehen, indem ich das Script file selbst schreibe, und anschließend FTP aufrufe, anstatt der Batch Datei. Klappt auch soweit 😃

Nur brauch ich aus div. Gründen das Log, wie man es aus der Console gewöhnt ist(siehe Anhang). In der Batchdatei wurde das mit "ftp -s:file >> test.log" gelöst.

Ich habe bereits versucht, den Standardoutput vom Process abzufangen und diesen zu speichern, nur dieser beinhaltet nicht alle Informationen.

Benutzer (******:(none)): open ****

binary
put **********
put **********
quit

*** = Ersetzen username, Domain und die Files.

Daher meine Frage, ob man das ">>" leicht lösen könnte?

Lion

30.03.2009 - 13:12 Uhr

Hallo,

ganz nette Sache, bin eben auch schon am Kniffeln.. das einzige was mich ein wenig stört ist, dass du mit Ass zum zählen bekinnst, mein klassischen Würfelpoker gibt es ja das Ass und ist der höchstmögliche Würfelwert.

Hier ist es der kleinste? Also ich finde, das sollte man umbennen (kenne aber Kniffel nicht so gut, eventuell muss es ja so heißen).

Ansonsten sieht es sehr gut aus.
Lion

24.03.2009 - 07:35 Uhr

Jetzt nicht böse sein, aber ich habe mir eben den Artikel "DOS-Kommandos per C#" durchgelesen, und ist das nicht etwas falsch formuliert?

Proccess.Start führt doch nur, wie der Name sagt, einen weiteren Prozess aus, dass hat doch eher weniger mit DOS Befehlen zu tun? Für mich sind DOS Befehle CD, DIR, MKDIR, RMDIR, RENAME etc...

Sorry, ist mir nur jetzt ins Auge gefallen und natürlich kann auch ich falsch liegen.. 😃

Lion

24.03.2009 - 07:26 Uhr

Hallo,

auch ich kenne den Beitrag von PRO7, und es ist doch ein Unterschied, einen Jugendlichen (13, 14 Jahre) zu überwachen oder ein Baby.

Der gezeigte Beitrag war wirklich nicht okay, und auch eher ein Ausnahmefall (sonst würde er wohl nicht gezeigt werden, wenn es normal wäre, lockt ja keine Zuschauer).

Also ich sehe da keine Bedenken, ein Baby(!) zuüberwachen, und solche Kamera gibt es doch, Stichwort bei google "WLAN Netzwerkkamera".

Lion