Laden...
M
Benutzerbeschreibung

Forenbeiträge von mkolb Ingesamt 58 Beiträge

20.07.2024 - 19:35 Uhr

Hallo,

ich möchte es schon als EXE anbieten.

Habe umbenannt von FIMANSolarSetup.exe auf FIMANSolar.exe. Hat leider nichts gebracht. Am Notebook lade ich runter und dann sage ich "Datei öffnen" am Firefox. Leider kommt dann keine Reaktion.

Beim Edge steht beim Download leider nur: 
"FIMANSolar.exe wird häufig nicht heruntergeladen. Stellen Sie sicher, dass Sie FIMANSolar.exe vertrauen, bevor Sie es öffnen."

Ich muss es beim Edge erst als sicher deklarieren, bevor ich es installieren kann.

Wie kann ich das doch als sicher darstellbar machen?

Tschau

20.07.2024 - 16:55 Uhr

Hallo,

ich habe mit C# (.net 8) ein kleines Tool erstellt, um eine Photovoltaikanlage auszulesen.

Diese möchte ich für andere ebenfalls zur Verfügung stellen: https://www.fiman.de/solar/FIMANSolarSetup.exe

Im Firefox kann ich die Datei auf meiner Webseite anklicken: https://www.fiman.de/cms_select.php?ID=369 und herunterladen und speichern.
Am Entwicklungsrechner erscheint die Anwendung und erhalte den Button "Nicht ausführen", aber unter "Weitere Informationen" kann man die Anwendung installieren, bzw. ausführen.

Am Notebook kann ich die Anwendung herunterladen, aber beim Starten der ..Setup.exe tut sich nichts.
Mit dem Edge kann ich diese herunterladen und dann zum Installieren starten.

  • Warum wird meine Setup-Datei blockiert?
  • Wie bekomme ich das mit Smartscreen weg? Habe da mal an Microsoft letzte Woche hingesendet, aber diese prüfen noch.

Für eine andere Software habe ich das auch mal an Microsoft gesendet, aber nichts freigeschaltet bekommen. 
Muss ich da noch etwas tun?

Tschau

11.07.2024 - 19:42 Uhr

Hallo,

gibt es eine freies/kostenloses Ribbon-Tool für .NET 8 (WindowsForms) ? Habe leider noch nichts gefunden, was frei/kostenlos ist.

Für .net Framework 4.8 habe ich eines, kann das aber nicht nicht .NET 8 konvertieren.

Tschau
Martin

25.05.2024 - 10:21 Uhr

Hallo,

ich habe eine HTML-Text und möchte dort die <p>-Werte auslesen.

<div class="artikel">
  <p>text1</p>
  <p>text2</p>
  <div ...>
  <p>text3</p>
  <p>text4</p>
</div>

Dabei kann allerdings mal ein anderes Tag sein, was ich nicht möchte. Ich möchte nur die Werte innerhalb <p> und </p> haben.

Habe es mit

		var doc = new HtmlDocument();
		doc.LoadHtml(html);

		          var paragraphs = doc.DocumentNode.SelectNodes("[@class='article__text']//p");
                  if (paragraphs != null)
                  {
                      foreach (var paragraph in paragraphs)
                      {
						  Console.WriteLine(paragraph.InnerText);
                      }
                  }

versucht, aber das geht nicht.

Wie mache ich es richtig?

Tschau

10.05.2024 - 12:29 Uhr

Hallo,

ich möchte eine Webseite auslesen. Habe dazu HTMLAgility verwendet.

Wenn ich die Seite im Browser aufrufe oder auch über WebView2, dann wird alles korrekt dargestellt:
URL: https://www.finanzen.net/index/sdax/werte

Wenn ich über den Code

HtmlWeb hw = new HtmlWeb();
HtmlAgilityPack.HtmlDocument doc = hw.Load(LStr_URL);
return doc.Text;

verwende, erhalte ich nur diese Fehlermeldung zurück:

<HTML><HEAD>
<TITLE>Access Denied</TITLE>
</HEAD><BODY>
<H1>Access Denied</H1>
 
You don't have permission to access "http&#58;&#47;&#47;www&#46;finanzen&#46;net&#47;index&#47;sdax&#47;werte" on this server.<P>
Reference&#32;&#35;18&#46;cf580317&#46;1715336877&#46;eeeef10
<P>https&#58;&#47;&#47;errors&#46;edgesuite&#46;net&#47;18&#46;cf580317&#46;1715336877&#46;eeeef10</P>
</BODY>
</HTML>

Wie komme ich trotzdem an den HTML-Code, um diesen auszuwerten?

Tschau
Biker68

29.04.2024 - 17:34 Uhr

Hallo,

ich habe ein Dictionary erstellt. Die Daten habe ich erstmal manuell als Vorgabe erstellt.

Wenn ich diese aber nach einem Wert sortieren möchte, über LINQ, erhalte ich eine Fehlermeldung:

Das Objekt des Typs "System.Linq.OrderedEnumerable`2[System.Collections.Generic.KeyValuePair`2[System.Int32,FIMAN.FIMANInternetAnbieter],System.Int32]" kann nicht in Typ "System.Collections.Generic.Dictionary`2[System.Int32,FIMAN.FIMANInternetAnbieter]" umgewandelt werden.

Verwendetes Datenbanksystem: LINQ

            Dictionary<int, FIMANInternetAnbieter> L_ListeInternetAnbieter_sortiert=null;
           try
           {
               L_ListeInternetAnbieter = FIMANInternetAnbieter.AnbieterlisteLaden(L_ListeInternetAnbieter);
               //L_ListeInternetAnbieter_sortiert = (Dictionary<int, FIMANInternetAnbieter>)(from Anbieter in L_ListeInternetAnbieter orderby Anbieter.Value.Reihenfolge ascending select Anbieter);
               var L_ListeInternetAnbieter_sortiert2 = from Anbieter in L_ListeInternetAnbieter orderby Anbieter.Value.Reihenfolge ascending select Anbieter;
               L_ListeInternetAnbieter_sortiert = (Dictionary<int, FIMANInternetAnbieter>)L_ListeInternetAnbieter_sortiert2;
           }
           catch (Exception ex)
           {
               FIMANLogging.WriteErrorLog("ERROR", "FIMANInternetAnbieter:AnbieterlisteSortiert", ex);
               throw;
           }
           return L_ListeInternetAnbieter_sortiert;

Es ist egal, ob ich den auskommentierten Code verwende oder den Umweg über "var". Die Fehlermeldung kommt immer.

Wie bekomme ich den Fehler weg, der nur zur Laufzeit auftritt?

Tschau

12.04.2024 - 10:48 Uhr

habe den Fehler gefunden. Firewall war soweit korrekt, allerdings hatte ich die falsche EXE ausgewählt. Da war noch eine ältere Installation aus einer früheren Installation in der Firewallfreischaltung ausgewählt. Jetzt geht es wieder.

Danke für die Unterstützungen.

11.04.2024 - 18:19 Uhr

warum sollte es mit der EXE nicht gehen?

Es ging mit Windows10 + WindowsServer2019. Bei Windows11 + WindowsServer2022 wird das wohl blockiert.

Ich schaue mir Deinen Link aber mal näher an.

PS: Gibt es ggf. eine alternative Technik zu WCF?

11.04.2024 - 17:43 Uhr

auf Windows Server 2022:

Einstellungen → Kommunikation von Apps durch die Windows Defender Firewall zulassen

-> Zugelassene Apps und Features

-> meine Anwendung → Haken bei Domäne/Privat/Öffentlich

Auf dem Windows11-PC ebenfalls.

11.04.2024 - 14:55 Uhr

Hallo,

ich habe eine kleine Anwendung mit .net. Diese läuft auf einem Server und auf einem Client.

Auf dem Client ist ein kleines Tool, dass per WCF prüft, ob die Anwendung auf den verschiedenen Rechnern läuft. Das ging bisher ganz gut.
Seitdem ich von WindowsServer2019 auf WindowsServer2022 und Windows10 auf Windows11 gewechselt bin, geht das nicht mehr.

Ich habe die Firewall jeweils freigeschaltet, habe auch bei den ServerFeatures alle WCF-Dienste aktiviert.

Gibt es dazu weitere Einstellmöglichkeiten?

Tschau
Martin

06.11.2023 - 16:04 Uhr

habe es nun anders gelöst: Habe das SplitterControl rausgeschmissen und das "TableLayoutPanel" verwendet. Das scheint überall gut auszusehen. Muss ich mal länger durchtesten.

06.11.2023 - 15:28 Uhr

Hallo,

also, das hat keinen Einfluss:

<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
  <application>
    <!-- Windows 10 compatibility -->
    <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />
  </application>
</compatibility>

das aber schon, aber katastrophal, nicht brauchbar:

<configuration>
  <!-- ... other xml settings ... -->

  <System.Windows.Forms.ApplicationConfigurationSection>
    <add key="DpiAwareness" value="PerMonitorV2" />
  </System.Windows.Forms.ApplicationConfigurationSection>

</configuration>

Sehe aber, das scheint nicht das Listview zu sein, sondern habe darüber einen "Splitcontainer". Am Entwicklungs-PC sieht es mit 150 % gut aus, am Notebook mit 200% habe ich allerdings die Probleme.

Der Splittingscontainer ist gedacht, wenn kleine Bildschirme vorhanden sind, dass man auch noch etwas sieht. Ansonsten liebe ich es mit Anchor zu arbeiten, aber bei verschiedenen Tabellen untereinander und nebeneinander, ist das nicht mehr hilfreich.
Gäbe es andere Möglichkeiten ?

Tschau
Martin

06.11.2023 - 12:46 Uhr

Hallo,

ich habe auf einer Windows-Form mehrere Listviews. Diese passen sich bei normaler DPI-Zahl gut an.

Habe aber ein Notebook mit hoher DPI-Zahl und dann ist das Listview recht winzig. Habe darüber ein Panel und das Listview entsprechend Dock=Fill.

Habe Listview unter ein Panel und nur Anchor auf Top, Left, Right, Button gesetzt, trotzdem erhalte ich winzige Listviews.

Habe leider nichts konkretes bei der Google-Suche gefunden, nur Hinweise auf generelle Anpassungen, die auf die app.config hinweisen:

            <appSettings>
                <add key="EnableWindowsFormsHighDpiAutoResizing" value="true"/>
            </appSettings>

Hat jemand Tipps für mich ?

Tschau
Martin

02.10.2023 - 12:03 Uhr

Danke für die Links.

Habe den Wiederherstellungsmodus auf "Einfach" gestellt. Damit fällt das mit des Transaktionsprotokoll weg.

Das reicht mir.

Danke für die Hilfe und Hinweise.

Ich beobachte es weiter.

29.09.2023 - 10:56 Uhr

Backup-Datei ist ca. 10 GB groß

Die .ldf-Datei ist ca. 62 GB und die .mdf-Datei ca. 11 GB groß

29.09.2023 - 06:51 Uhr

Hallo,

meine SQL-Datenbank (SQL Server Version 14.0.2047) ist sehr groß.
Das Transaktionsprotokoll ist dort immer wieder voll.
Daher lasse ich nachts über die "Aufgabenplanung/Taskplaner" einen Job laufen.
Dabei wird die Datenbank gesichert und das Transaktionsprotokoll gespeichert und reduziert.
Dabei ist das Transaktionsprotokoll immer größer und größer  geworden, auch die exportierte Datei.
Jetzt bin ich hergegangen und habe den Namen der Transaktionsprotokolls-Datei mit einem Timestamp versehen,
damit immer eine neue Datei erzeugt wird.
Im Grunde geht es, aber die Datei wird täglich größer und größer und nach ca. 3-4 Tagen ist
das Transaktionsprotokoll wieder voll.
Dann lasse ich diesen v. g. Task im Aufgabenplanung/Taskplaner wieder neu laufen und
die exportierte Transaktionsprotokolls-Datei ist klein und alles wieder gut.

Das Transaktionsprotokoll soll aber immer kleiner werden. Was muss ich in meinem Script da noch anpassen ?

Betriebssystem: Windows Server 2019
Client:            Windows 10 und 11
DB:                SQL Server 2017 Express
.net:            Framework 4.8 (C# + VB)

Task im Aufgabenplanung/Taskplaner:
                SQLCMD -E -S SVxy\SQLExpress -i S:\Backup\SQL-Server\FIMAN-DB-Backup.sql
FIMAN-DB-Backup.sql:            

USE [FIMANSQL_SERVER3]
EXEC sp_helpdb FIMANSQL_Server3
-- sichern der DB
BACKUP DATABASE [FIMANSQL_SERVER3] TO  DISK = N'C:\SQL\BAK\FIMANSQL_Server3_auto.bak'  WITH NOFORMAT, INIT,  NAME = N'FIMANSQL_SERVER3-Vollständig Datenbank Sichern',  SKIP, NOREWIND, NOUNLOAD,  STATS = 10
GO
-- sicheren der Transaktionsdatei
Declare @filename3 as char(255)

Declare @datum as char(15)

Set @datum = (replace(str(DatePart(YYYY, GetDate()), 4), ' ', '0') +
replace(str(DatePart(MM, GetDate()), 2), ' ', '0') +
replace(str(DatePart(DD, GetDate()), 2), ' ', '0') + '_' +
replace(str(DatePart(hh, GetDate()), 2), ' ', '0') +
replace(str(DatePart(mi, GetDate()), 2), ' ', '0') +
replace(str(DatePart(s, GetDate()), 2), ' ', '0'))

Set @filename3 = 'D:\SQL\FIMANSQL_Server3_Transaktionsprotokoll'+@datum+'.trn'


-- BACKUP LOG [FIMANSQL_SERVER3] TO  DISK = N'C:\Daten2\SQL\FIMANSQL_Server3_Transaktionsprotokoll.trn' 
-- WITH NOFORMAT, NOINIT,  NAME = N'FIMANSQL_SERVER3-Transaktion Datenbank Sichern', 
-- SKIP, NOREWIND, NOUNLOAD,  STATS = 10
-- BACKUP LOG [FIMANSQL_SERVER3] TO  DISK = N'd:\sql\FIMANSQL_Server3_Transaktionsprotokoll%date%.trn' 
BACKUP LOG [FIMANSQL_SERVER3] TO  DISK = @filename3

GO
-- reduzieren der Log-Datei
DBCC SHRINKFILE ("FIMANSQL_Server2_log")
GO

Tschau
Martin

25.07.2023 - 17:23 Uhr

achja, es darf auch nicht unter

C:\Program Files

bzw.

C:\Program Files (x86)

sein. Das ist der v. g. Bug.

25.07.2023 - 17:14 Uhr

Hallo,

habe es gelöst.

Dein Hinweis hat mich auf die Idee gebracht.

Habe das Deploy-Verzeichnis lokal reinkopiert, dann ging es. Habe nun die Dateien verglichen, die per Innosetup installiert wurden.
Beim Editieren war mir nicht aufgefallen, dass neben der DLL-Datei auch noch 2 weitere Unterverzeichnisse neu dazugekommen sind.
Die habe ich nun ergänzt und nun scheint es zu klappen.

Danke für den Ideen-Bringer.

Tschau
Martin

25.07.2023 - 16:16 Uhr

Das Problem ist nur, beim Deployen auf dem lokalen PC oder auf einem anderem PC.

Innerhalb der Entwicklungsumgebung werden Webseiten (egal welche, mit/ohne Scripte) korrekt dargestellt.
Auch die EXE-Datei im BIN-Verzeichnis, direkt nach dem Erstellen, läuft korrekt.

25.07.2023 - 14:09 Uhr

klar, der geht einwandfrei.

Alles andere geht auch.

Rufe ich die EXE-Datei direkt bei der Entwicklung auf, geht es.

Deploye ich es auf dem PC, dann zeigt diese Version leider keine Webseiten innerhalb des Programmes an.

25.07.2023 - 13:49 Uhr

Hallo,
habe in meine winforms-VB.net/C#-Anwendung webview2 eingefügt.
Das klappt in der Laufzeitumgebung und nach dem Compilieren.
In der Anwendung werden Browserdarstellungen mit webview2 durchgeführt.

Beim Installieren auf dem PC per Innosetup, erhalte ich zwar keine Fehlermeldung,
aber das webview2 zeigt nichts an.
Eintrag in Innosetup:
Source: "...\Microsoft.Web.WebView2.WinForms.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "...\Microsoft.Web.WebView2.Core.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "...\Microsoft.Web.WebView2.Wpf.dll"; DestDir: "{app}"; Flags: ignoreversion

Habe gelesen, webview2 muss als Feature oder ähnl. auf dem PC installiert werden.
Wenn ich das mit der Runtime versuche, dann wird gesagt, ist installiert.
In der App-Liste steht es auch drin, bei Win10 und Win11.

Weiss jemand, ob man noch irgendwas installieren muss/eintragen muss ?

Links:
erste Schritte:
https://learn.microsoft.com/de-de/microsoft-edge/webview2/get-started/winforms
Deployment:
https://learn.microsoft.com/de-de/microsoft-edge/webview2/concepts/distribution

Tschau
Martin

28.05.2023 - 15:14 Uhr

ich habe doch noch was gefunden:

Projektmappen-Explorer → My Project → Verweis

Dort stehen oben die oben die Verweise. Meine Unterprojekte/Klassen müssen dort stehen.
Darunter steht "Importierte Namespaces". Dort muss der Haken jeweils weg sein.

Dann erhalte ich keine Warnhinweise mehr.

PS: Die Hinweise über Google zum diesem Weg, waren sehr irreführend.

Tschau
Martin

28.05.2023 - 14:49 Uhr

Hallo,

Danke für den Link. Habe mir das angeschaut und sowas schon vermutet. Allerdings ist mein Problem: Wo finde ich den "Project Designer", wo "Importierte Namespaces" ?

Ich arbeite mit Visual Studio 2022 Community-Edition, Framework 4.8.

Habe zwar den "Projektmappen-Explorer", dort die "Verweise" + "My Project" vom Projekt.
In "Verweise" sind die jeweiligen Unterprojekte aufgelistet, in "My Project" finde ich "Einstellungen", aber dort nichts konkretes mehr.

Wo finde ich denn diese "Importierte Namespaces" ?

PS: Googeln hat mir leider nicht weitergeholten.

Tschau
Martin

28.05.2023 - 10:52 Uhr

Hallo,

ich habe ein größeres .net-Projekt: VB + C#

Die Oberfläche ist (aus historischen Gründen) in VB.net entwickelt, die meisten Klassen aber in C#.

Wenn ich mein Projekt kompiliere (neu erstelle), erhalte ich 4 x folgende Warnings:

warning BC40057: Der in Imports "FIMANFassade" auf Projektebene angegebene Namespace oder Typ enthält keine öffentlichen Member
oder wurde nicht gefunden. Stellen Sie sicher, dass der Namespace oder der Typ definiert ist und mindestens einen öffentlichen
Member enthält und der importierte Elementname keine Aliase verwendet.

Das Projekt läuft einwandfrei, möchte aber trotzdem den Warning-Hinweis entfernen. Wie mache ich das ? Was fehlt ?

Tschau
Martin

21.10.2022 - 09:05 Uhr

Hallo,
ich möchte die Webseite per Code herunterladen, allerdings erhalte ich keine konkreten Inhalte. Anscheinend werden diese nachgeladen, C# erkennt das nicht.
Wenn ich mit dem Firefox die Seite aufrufe, erhalte ich die Inhalte angezeigt, mit dem IE11 allerdings nicht. C# verhält sich anscheinend eher wie IE11 als ein moderner Browser.

Link:
https://app2.msci.com/products/index-data-search/

Wie komme ich trotzdem an den Inhalt ?

Mein Code bisher:


            const String fireFoxUserAgent = "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.15) Gecko/20110303 Firefox/3.6.15";
            //Anfrage an die Übergebene URL starten
            HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
            request.UserAgent = fireFoxUserAgent;

            //Antwort-Objekt erstellen
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();

            //Antwort Stream an Streamreader übergeben
            StreamReader sr = new StreamReader(response.GetResponseStream());

            //Antwort (HTML Code) auslesen
            string html = sr.ReadToEnd();

            //Streamreader und Webanfrage schließen
            sr.Close();
            response.Close();

            //Quellcode zurückgeben
            return html;

Auch mit dem HtmlAgilityPack erhalte ich keinen Tabelleninhalt:


            HtmlWeb web = new HtmlWeb();
            var htmlDoc = web.Load(LStr_Link);
            var node = htmlDoc.DocumentNode.SelectSingleNode("card border-zero");

Wie komme ich trotzdem ran ?

Tschau
Martin

17.10.2022 - 19:31 Uhr

ich weiß, HTML ist für Webdarstellung im Browser.

In dem ist im Body-Bereich die Tabelle <table> mit den Kopfzeilen <th>, Zeilen <tr> und Spalten <td>.
Dachte, es gibt schon schönen Code dafür, den ich gerade verwenden könnte, ohne stundenlang das auszutüffeln.

Tschau
Martin

17.10.2022 - 19:10 Uhr

Hallo,
ich suche ein Stück Code, um eine HTML-Datei in CSV umzuwandeln.
Das Einlesen ist kein Problem, aber wie wandle ich den HTML-Code in CSV um ?
Die HTML-Daten sind in tables und in th (Kopf), tr (Zeile) und td (Spalte) unterteilt.

Habe beim googlen nichts gefunden. Es sollte ohne Zusatz-DLL gehen.

PS: Die HTML-Datei wird per Excel wunderbar in einer Tabelle dargestellt. Ich möchte aber eine autom. Konvertierung.

Tschau
Martin

08.07.2022 - 12:45 Uhr

ah, habe ein POST vergessen, aber trotzdem:


C:\>curl -d  "@S:\FIMAN\config\CurlBlackrock_Post.txt" -X POST "https://www.blackrock.com/at/privatanleger/product-screener/product-screener-v3.jsn?type=excel"
<HTML><HEAD>
<TITLE>Access Denied</TITLE>
</HEAD><BODY>
<H1>Access Denied</H1>

Vermutlich ist meine txt-Datei nicht korrekt. Was muß da rein, von diesen vielen -H -Teilen ?

08.07.2022 - 12:41 Uhr

ah, Danke für den Hinweis.
Habe den CURL mal etwas zerpflückt, dieser besteht aus div. Teilen.


"https://www.blackrock.com/at/privatanleger/product-screener/product-screener-v3.jsn?type=excel" 
-X POST 
-H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:101.0) Gecko/20100101 Firefox/101.0" 
-H "Accept: application/json, text/plain, */*" 
-H "Accept-Language: de,en-US;q=0.7,en;q=0.3" 
-H "Accept-Encoding: gzip, deflate, br" 
-H "Referer: [url]https://www.blackrock.com/at/privatanleger/produkte/product-list[/url]" 
-H "Content-Type: application/x-www-form-urlencoded" 
-H "Origin: [url]https://www.blackrock.com[/url]" 
-H "Connection: keep-alive" 
-H "Cookie: STICKY_SESSION_COOKIE_UK_RETAIL01_LIVE=""a39b33c9c603a57c""; STICKY_SESSION_COOKIE_UK_RETAIL01_LIVE=""6d3d24608e3f907f""; _abck=F39CDF40E4F5BE98F7F0C90CB6B3385C~0~YAAQj6cpF/RT651/AQAA8ZmzvQeVdc1wrl1/i94WNqHdTuCTFz+GdsH7+C8LLbArPjJMwlfo0DoIqd3VjmVBQlicQrjOGgM0aijZ9q4HbZLbHkdYC5kNOTkiEtlbUTsqmAEqEYI1ORVvLunNC5qYCqX9HFqZtdwywfyoeYQxp/bk1QSniUWa57dA/CGFdQ5V4qPSEVCXcSvOpp08axlyd7ZcBvXoINZ6x3nonN4bnMMEpCAJSlSwi/BZ04a8uXwb07ZwBJnaGu7XMqlSD3VW6rv5v7on6RE8Wbsbbf/6BcTTCy1a/G6xmAItjdicnw69QzyJ2c9AXMM2gP0ZO+lhQFmHmtMFlNGzim1aR9KRL3bxQbmtWShX9WD4gE2MGJWVXgD3hGd+javjvmFBy0Vr1ffAqlPqvxIgUqOZ~0~||-1||~-1; ts-one-at-locale=de_AT; utag_main=v_id:017efbde4f8c001fae6641d8040b0004e006600d00fb8`$_sn:110`$_se:13`$_ss:0`$_st:1657178489879`$vapi_domain:blackrock.com`$ses_id:1657176492977"%"3Bexp-session`$_pn:1"%"3Bexp-session; cleared-old-consent-cookies=; OptanonConsent=isGpcEnabled=0&datestamp=Thu+Jul+07+2022+08"%"3A48"%"3A13+GMT"%"2B0200+(Mitteleurop"%"C3"%"A4ische+Sommerzeit)&version=6.27.0&isIABGlobal=false&hosts=&landingPath=NotLandingPage&groups=C0001"%"3A1"%"2CC0003"%"3A0"%"2CC0002"%"3A0"%"2CC0004"%"3A0&geolocation="%"3B&AwaitingReconsent=false&consentId=4badc4b8-2fd8-4e10-aa31-7f67c8aafda5&interactionCount=0; OptanonAlertBoxClosed=2022-02-25T07:47:10.248Z; AMCV_631FF31455E575197F000101"%"40AdobeOrg=-1303530583"%"7CMCIDTS"%"7C19049"%"7CMCMID"%"7C69911534768528624172266666002894366157"%"7CMCAID"%"7CNONE"%"7CMCOPTOUT-1645782430s"%"7CNONE"%"7CvVersion"%"7C3.3.0; ts-de-retail-locale=de_DE; SSESSIONID_uk-retail01=YWQxOWYyMTgtNTc5Ny00OGY2LThmYjUtOGNjMTMxZmUwNDM1; b71e11317c8db928fe965cfeebd54975=9b12494171fc6d32038a96be85e3233c; NAUTILUS-XSRF-TOKEN=09f27898-1bed-447c-9bd2-5afb94395eb0; c68299fd7efaf68170a7b1f970bcc72f=37f6df3f3363694cb2e8ca59cdb9c35b; AllowAnalytics=false; AMCVS_631FF31455E575197F000101"%"40AdobeOrg=1; blkUserType-one-at=individual; test-cleared-blacklisted-cookies=; ak_bmsc=5EE6391DAFCBC3112E732BE89F0A50E7~000000000000000000000000000000~YAAQnCo1FzHgSNKBAQAALYZq1xAOciLLSIgBwvOj87xdU6b9qe7geT/b7MMcbI8Np53acWjY6bcy4hYZiG1f+mvxA5ZSw0k07DIiZ6Vdn845lbRg2aTZTH2/ysCpxP/Rvk6n2W7NsfZ14Xo7JHz+aMtVuGH9YVgl4NbBqK72quBRw+FKqww0e2oeWNdnQLq4NQhfwk4/TG8t4x6nV9oIzMTdqs80masK/ipUBT2/Gy4/3K0Qs9bqembuMnLT8eM/+OfRoh6rBAqdRwNdwUNP2kBHcN9pmZ0H2ufQslVld+r8bnB7JBf9b8ViCSUAQ11U0JW/bWqatcnHf+3DdNDA2mmtCnYRcCvTxvGZWMZ1tJXlKuZ0ZfVAyefcHa5YOJZfx4FOumopInDwDdXCgg==; bm_sv=0427DB93C7D4AE0667EBF5A6AAC488AA~YAAQnCo1F1MxSdKBAQAAHoFt1xBChDWv0JckMwHoVyX6iAqVrH9vwy0USc8viBmI+7eMibrLn6qEQG0TtudAuSpxq1DUVvuQJgiA9FZ0WRG+53dwwKX3IBCPOkiP4q+Z65mdhPwrM6+cd7+1GFrTW/nQii01xf5sBK+FjzdbjAjz3OA394rU1SEnOyx2u97lgS9+fjbyxZ8ewPIxT2MOcYcgIAlShx1qwI8TUxuCHRLvAnbMndIeT7uGOyRF8Gpd5N0n~1; bm_mi=E5C4CA9E7131BC709BFD76A6141D6363~YAAQnCo1F7DqSNKBAQAAHOZq1xDm2G92/YA9M8vz6V8wNrtQbIByqwkCdBfttev4GaC4o5uaC5BnfcHXVEEdYM08vP+iY3WN+pUF3y8yLVfG+wM3dfz6/8Zc1IpV2Frib5qlhtq+cf7P9R/UsxaeOsvtv5taWUnOQISHck+zR6MOB4oFfiD12sCdMmBtLKYbZZC8Drn6s4H5dky/voB4/EKgJpdrdP1PWJwgScP/NIr6OaRjtWhfR1lhPsi1+OJI4IShdiACkgieukvjB6aVts70QOIW5ftzRfJgXicjUUfHM+V+vWDZYNmQTcdLoIxvbodKU6mmS/H9cT5XRhxB5TZsMa7JZUwssyKuvzkRODLIwdgWDQCFz5lhX8PTZVCYCP816Jb5/uBgYZ4tiDdmH0KDMdKZSU9Wuv4zUjTBgQa5zj3OjybRzdkzKVP+XQ==~1" 
-H "Sec-Fetch-Dest: empty" 
-H "Sec-Fetch-Mode: cors" 
-H "Sec-Fetch-Site: same-origin" 
-H "TE: trailers" --data-raw "dcrPath=/templatedata/config/product-screener-v3/data/de/austria/one-at&portfolios=228238-228239-228240-228242-228268-228270-228271-228272-228273-228274-228275-228280-228281-228282-228283-228289-228291-228294-228295-228296-228297-228298-228299-228304-228305-228306-228307-228308-228309-228310-228311-228313-228315-228321-228322-228323-228326-228327-228328-228329-228332-228333-228334-228335-228337-228338-228339-228340-228341-228342-228343-228346-228347-228348-228349-228350-228352-228354-228355-228356-228357-228360-228361-228362-228365-228366-228367-228368-228369-228375-228376.....

Die div. Teile beginnen immer mit -H
Allerdings kenne ich die Bedeutung nicht.
Gem. Deinem Link habe ich mal geschaut. Erhalte aber nur das, wenn ich das mal direkt im CMD ausführen möchte.


curl -d  "S:\FIMAN\config\CurlBlackrock_Post.txt" -X [url]https://www.blackrock.com/at/privatanleger/product-screener/product-screener-v3.jsn?type=excel[/url]
curl: no URL specified!
curl: try 'curl --help' for more information

Tschau
Martin

07.07.2022 - 21:26 Uhr

Die Curl lautet allerdings so lange, daher soll diese in eine Datei verlagert und über CURL aufgerufen werden. Für CMD ist das zu lange, ebenfalls für HTTP-Abfrage:

curl "https://www.blackrock.com/at/privatanleger/product-screener/product-screener-v3.jsn?type=excel" -X POST -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Firefox/102.0" -H "Accept: application/json, text/plain, /" -H "Accept-Language: de,en-US;q=0.7,en;q=0.3" -H "Accept-Encoding: gzip, deflate, br" -H "Referer: https://www.blackrock.com/at/privatanleger/produkte/product-list" -H "Content-Type: application/x-www-form-urlencoded" -H "Origin: https://www.blackrock.com" -H "Connection: keep-alive" -H "Cookie: STICKY_SESSION_COOKIE_UK_RETAIL01_LIVE=""b62664beee635423""; ts-de-retail-locale=de_DE; s_fid2=3F7DD1BF89045F81-2105CE523D848B20; blkUserType-de-retail=individual; de-retail-recent-funds=237595; ts-one-locale=en_US; s_fid=26D2EB51B0144ED1-0B35A90747922AD4; ts-one-at-locale=de_AT; blkUserType-one-at=individual; _abck=7A6B3509B8B8DDC30A5C0CB5DE52E1800YAAQltlraI1qFp5/AQAAVGGvoAdlsR+DnhCfC6xSqL2fi1w1fF1BbQJOIwpyUofL/MIBLHLWZ8BsSxquZttNMNEd6pZpF85dbc0ad5mAwHoB12lkQpku23l3N11p5RKd1A4L7QCnEkCzOBbgb76pERX7vEj88TcTDoMiBXpBiJtf8c3X/SpIX+LLY8StjlMUhu58neMYK/56gIrSI3J2cxGFl0JyPfTx1H1F4qw9jLgTHnCGq0VdRspqs2GxG8jPJ/XNXpDvHXsbddXyvoejQU5r+OUage1nimvdNdYQqkOZIJ8przs1LjctKW/N8Ig4rOhefEl6Z0t1GQufBQDiC4xhExgWpvGcGTnZitCRJc73nCqV/aawZ9mWGXIP/6j4CRPIrneLTfF84WWfyjssKoQyyB0EFWSO0UZS0||-1||-1; utag_main=v_id:017ec649b8870038f4f0b376fc5a0004e006600d009dc$_sn:27$_se:4$_ss:0$_st:1657223506117$vapi_domain:blackrock.com$ses_id:1657221685270"%"3Bexp-session`$_pn:1"%"3Bexp-session; cleared-old-consent-cookies=; OptanonConsent=isGpcEnabled=0&datestamp=Thu+Jul+07+2022+21"%"3A21"%"3A26+GMT"%"2B0200+(Mitteleurop"%"C3"%"A4ische+Sommerzeit)&version=6.27.0&isIABGlobal=false&hosts=&landingPath=NotLandingPage&groups=C0001"%"3A1"%"2CC0003"%"3A0"%"2CC0002"%"3A0"%"2CC0004"%"3A0&geolocation="%"3B&AwaitingReconsent=false&consentId=f22357d1-3780-4c3d-bd0c-1c6d62f64cc9&interactionCount=0; OptanonAlertBoxClosed=2022-02-26T06:55:53.073Z; AMCV_631FF31455E575197F000101"%"40AdobeOrg=-1303530583"%"7CMCIDTS"%"7C19050"%"7CMCMID"%"7C52307340170082227444897750253089020135"%"7CMCAID"%"7CNONE"%"7CMCOPTOUT-1645865753s"%"7CNONE"%"7CvVersion"%"7C3.3.0; JSESSION_uk-retail01=E241FFC8607E8864970598DA3C60EB5A.03; SSESSIONID_uk-retail-k=ZjVhNjgwZWUtNWEwOC00NjVkLThjNGItNzJmYWRhOTZjZGFh; b71e11317c8db928fe965cfeebd54975=90d3a573e74022e0aed3e22e0265fc3d; c68299fd7efaf68170a7b1f970bcc72f=c9f30c2ba657f6f2fbc9cb760a62fa73; NAUTILUS-XSRF-TOKEN=199399fd-96b7-4a05-9e32-7185c7411311; SSESSIONID_uk-retail01=ZjdkYTllMWQtMTA0OC00ZjE1LWI4Y2MtZWZkMWM3NjhmZTlh; SSESSIONID_uk-retail01=NjE5YzFhNGMtNmY2Zi00MjAxLWI1ZWQtNDk4MTFhMGFjMzk2; AllowAnalytics=false; AMCVS_631FF31455E575197F000101"%"40AdobeOrg=1; ak_bmsc=115A400EFA709BF27958E3D9CAFD6BFF000000000000000000000000000000YAAQYE1lX3WEadeBAQAAl+kc2hDF5B/jxTsJf4jVGM27KSM5h6j4Si6rkJbEG+l/RO3ec9QbBlQzRnAtd8LH9O8UCkRfTMYwA+4ONcewPSHbeYCl0iJ89IKM72b0auNivTNa9kecPNHBvtTSUX3M7lJ1W3Ta7nrpi56/whr+y7GczhVpw5gzuOwlp7f/nlZqgP7eOf714DH5OAglsL8u0ECu4fIUpQRUyHw0lWGcm1kpsg0Z0vp4MmwVxupPGRgiXIeBkWwcpGsUjmvUCCXV55koQx1kMc+lRiXib7XGIQP+9x49Syur9JFz/50Vm1NZCHJyc9xX8sVq+6wcrm0QHAVJiaoKV27TADXlykHPS8jCxvvLoR/SPL9LsQjvO78D5Hwu5oDY0281/p2+hA==; bm_sv=7314F56303BF165EE115A314564A0EF2YAAQYE1lX+qEadeBAQAAWfcc2hCO+/kgqMuv8phnPupTXc/tHVP+cj+53t4O8NksHSonqOcivI11XF5ahYcquFeNwKW4e1iW3LwMW7Zts0xeoZhFEUOOZ5Wp2POwl2XLNFKw9H/a7Wx4HDpcp0l22nL0gTswyeG2zlyCvA5vkTQqagikkLWW7rjz9v8oAJSE/1B1H6cuGBlj+JZcFoU3N7NmadJXpU3GU/oZDTVKnxLsAjMLhRpxmFz6dFcvwiC+1Pu5~1; test-cleared-blacklisted-cookies=" -H "Sec-Fetch-Dest: empty" -H "Sec-Fetch-Mode: cors" -H "Sec-Fetch-Site: same-origin" -H "TE: trailers" --data-raw "dcrPath=/templatedata/config/product-screener-v3/data/de/austria/one-at&portfolios=228238-228239-228240-228242-228268-228270-228271-228272-228273-228274-228275-228280-228281-228282-228283-228289-228291-228294-228295-228296-228297-228298-228299-228304-228305-228306-228307-228308-228309-228310-228311-228313-228315-228321-228322-228323-228326-228327-228328-228329-228332-228333-228334-228335-228337-228338-228339-228340-228341-228342-228343-228346-228347-228348-228349-228350-228352-228354-228355-228356-228357-228360-228361-228362-228365-228366-228367-228368-228369-228375-228376-228377-228378-228379-228383-228384-228385-228390-228393-228395-228396-228397-228398-228399-228400-228401-228402-228403-228404-228408-228409-228410-228411-228414-228415-228417-228418-228419-228421-228422-228423-228424-228425-228426-228427-228428-228429-228430-228434-228435-228437-228438-228439-228464-228466-228468-228470-228471-228472-228473-228475-228476-228477-228478-228479-228481-228482-228483-228484-228485-228486-228487-228488-228497-228498-228499-228501-228502-228503-228505-228506-228507-228508-228512-228513-228518-228519-228520-228521-228522-228523-228524-228525-228526-228528-228529-228530-228531-228532-228534-228536-228537-228538-228539-228540-228541-228542-228543-228546-228547-228548-228549-228550-228551-228552-228556-228557-228558-228559-228560-228563-228564-228565-228566-228567-228571-228573-228574-228575-228576-228578-228579-228581-228583-228585-228586-228588-228589-228590-228591-228592-228593-228595-228596-228597-228598-228603-228604-228605-228606-228607-228608-228609-228610-228611-228612-228613-228614-228617-228619-228620-228621-228622-228623-228626-228627-228628-228629-228630-228631-228632-228633-228634-228635-228636-228637-228638-228639-228640-228641-228642-228643-228644-228648-228651-228652-228653-228654-228655-228656-228657-228658-228659-228660-228665-228669-228674-228675-228676-228677-228678-228679-228690-228691-228692-228693-229019-229020-229021-229022-229024-229027-229028-229029-229030-229031-229032-229033-229042-229043-229044-229045-229046-229050-229051-229052-229055-229056-229057-229059-229060-229061-229062-229063-229064-229065-229066-229067-229068-229069-229070-229071-229072-229076-229077-229078-229079-229080-229081-229082-229085-229086-229087-229090-229091-229092-229095-229096-229097-229098-229099-229100-229101-229105-229106-229107-229108-229109-229110-229111-229112-229113-229114-229115-229116-229118-229121-229123-229124-229125-229127-229128-229129-229130-229131-229132-229133-229134-229135-229136-229138-229139-229141-229143-229147-229150-229158-229159-229160-229165-229166-229169-229171-229175-229177-229178-229179-229181-229182-229185-229189-229190-229191-229194-229195-229196-229197-229199-229200-229201-229202-229203-229208-229209-229277-229279-229280-229281-229283-229284-229285-229286-229289-229290-229291-229293-229295-229296-229297-229298-229299-229300-229301-229302-229309-229313-229319-229320-229321-229322-229323-229324-229325-229326-229327-229328-229330-229331-229332-229333-229334-229335-229336-229337-229338-229340-229341-229342-229343-229344-229345-229347-229348-229349-229351-229352-229355-229356-229399-229404-229405-229406-229407-229412-229444-229445-229446-229449-229450-229474-229475-229476-229477-229478-229547-229550-229551-229552-229556-229557-229558-229560-229561-229562-229563-229564-229565-229566-229570-229571-229572-229573-229576-229577-229578-229582-229583-229584-229587-229588-229589-229590-229591-229596-229597-229598-229601-229604-229605-229606-229607-229610-229611-229612-229613-229617-229618-229621-229636-229637-229638-229639-229640-229641-229642-229644-229645-229646-229648-229649-229650-229651-229653-229654-229655-229656-229659-229661-229662-229665-229666-229673-229674-229677-229678-229682-229684-229685-229687-229690-229692-229693-229694-229696-229698-229700-229702-229703-229704-229705-229706-229707-229712-229724-229725-229726-229727-229728-229729-229730-229731-229732-229733-229734- ....
-> ist nur 30 kb groß ...

Tschau
Martin

07.07.2022 - 18:08 Uhr

Hallo,

ich bin nun auf der Suche für das 2. Problem, d. h. wenn die Parameter über 8k sind, dann geht es mit dem CMD-Befehl nicht mehr.
Ich suche nun eine Lösung, daß ich für den CURL-Befehl die Parameter über eine Datei hinzufüge, allerdings klappt das nicht.

        curl -d &quot;c:\Curl.txt&quot;    

oder
curl -d "@c:\Curl.txt"
curl <"c:\Curl.txt"
gehen nicht.

Erhalte nur
curl: no URL specified!
curl: try 'curl --help' for more information

Die Hilfeangabe hat leider nicht geholten.
Hat das mal jemand irgendwie geschafft ?

Tschau
Martin

14.03.2022 - 15:47 Uhr

Hallo,
Danke für diese Hinweise, aber diese haben mich nicht weitergebracht.

Bin durch Zufall darauf gestoßen, daß man den Browser die Netzwerkanalyse durchführen kann. Dort sieht man quasi die Quelle zum Download.
Das ist ein CURL-Aufruf.
Das geht direkt in CMD.exe und entsprechend kann die Ausgabe in eine Datei umgeleitet werden.
Mit einem C#-Process kann das dann heruntergeladen und gespeichert werden.


            String Command = @"/C "+ PfadCurl + "curl " + CurlLink + " >" + Filename;
            Process.Start("cmd.exe", Command);

Bei 2 Fondsanbietern hat es geklappt, bei einem ist die CURL-Adresse zu lang für CMD. Suche noch nach einer Lösung.

Es ist nur eine Lösung für spezielle Fälle, nicht für alles.

Tschau
Martin

09.02.2022 - 17:25 Uhr

klar, eine API wäre eine feine Sache, steht aber nicht zur Verfügung. So waren zumindest deren Aussagen auf Nachfrage.

Ich will auch kein HTML crawlen, nur die vorhandene Excel-Datei erhalten, die für mich quasi hinter einem Button versteckt ist.
Ich weiß nicht, wie ich per Code den Button drücken kann.

Tschau
Martin

09.02.2022 - 13:23 Uhr

Hallo,
ich möchte autom. Dateien von einer Webseite herunterladen, wofür man erst einen Button anklicken muß.
z. B. hier:
https://de.allianzgi.com/de-de/unsere-fonds/fonds/list#
-> Download Daily Nav
oder
https://www.ishares.com/de/privatanleger/de/produkte/etf-investments#!type=emeaIshares&tab=overview&view=list
-> Fondsliste herunterladen -> Alle Fonds herunterladen

Aktuell mache ich das tägl. manuell, möchte das aber automatisieren.

Wie kann ich solche Dateien per C# (.net 4.8, WinForms) herunterladen ?

Tschau
Martin

01.02.2022 - 18:51 Uhr

Hi,
ich löse das nun mit dem ExcelDataReader:

https://github.com/ExcelDataReader/ExcelDataReader

Tschau
Martin

31.01.2022 - 06:53 Uhr

Hallo,
ich möchte XLS/XLSX-Dateien zu CSV konvertieren.
Habe dazu etwas gefunden und es ist relativ gut, aber bei manchen Excel-Dateien, wir die erste Zeile nicht erkannt/ausgelesen.
C# .NET - Convert Excel 2007 (XLSX) to CSV using OLE DB

Da wird alles ausgelesen, außer der 1. Zeile:


                //Fill the dataset with information from the Sheet 1 worksheet.
                var adapter1 = new OleDbDataAdapter("SELECT * FROM [" + worksheetName + "]", connectionString);
                var ds = new DataSet();
                adapter1.Fill(ds, "results");
                DataTable data = ds.Tables["results"];

                //Show all columns
                for (int i = 0; i < data.Rows.Count - 1; i++)
                {
                    for (int j = 0; j < data.Columns.Count; j++)
                        Console.Write("\"" + data.Rows[i].ItemArray[j] + "\";");
                    Console.WriteLine();
                }

Welchen Gedankenfehler habe ich hier drin, den ich übersehe ?

Tschau
Martin

27.12.2021 - 13:08 Uhr

Hi,
das mit dem Datumsprüfen kann ich irgendwie abhaken, egal ob Casten oder Parse oder ähnl.
Habe Zahlenwerte, z. B. 8,1943 und diese werden als August 1943 erkannt, oder 12.5432 die als Dezember 5432 erkannt werden.
Habe es anders gelöst, in dem ich angebe, nach welcher Art eine Spalte sortiert werden soll: Text, Zahl oder Datum.
In meinen Tabellen verwende ich keinen Mischbetrieb, d. h. ich entscheide welche Art (s.v.) es ist. Eine autom. Erkennung ist irgendwann fehlerbehaftet.

Danke für die Unterstützungen.

Tschau
Martin

26.12.2021 - 16:44 Uhr

muß es doch etwas umständlicher machen, als gedacht:


            else if (Double.TryParse(inhalt, out TestZahl))
            {
                // Werte als Double vergleichen
                double vx = double.Parse(((ListViewItem)x).SubItems[col].Text);
                double vy = double.Parse(((ListViewItem)y).SubItems[col].Text);
                result = vx.CompareTo(vy);
            }

Geht das auch eleganter ?

26.12.2021 - 16:35 Uhr

Hallo Abt,
die Erkennung über den Typ habe ich. Allerdings geht das mit dem Compare nicht, gibt es nicht für int bzw. double. Es gibt nur CompareTo. Das klappt allerdings auch nicht.


            else if (Double.TryParse(inhalt, out TestZahl))
            {
                // Werte als string vergleichen
                result = (((ListViewItem)x).SubItems[col].Text.CompareTo(((ListViewItem)y).SubItems[col].Text));
            }

Haste noch einen Tipp für mich ?

Tschau
Martin

26.12.2021 - 15:36 Uhr

Habe gerade eine Lösung gefunden:
Da muß ein "new" rein ...


this.listView1.ListViewItemSorter = [b]new[/b] ColumnSorter(e.Column, listView1.Sorting);

  1. Problem danach:

Hier werden Werte nach String verglichen:


                // Werte als string vergleichen
                result = String.Compare(((ListViewItem)x).SubItems[col].Text,
                            ((ListViewItem)y).SubItems[col].Text);

Ich möchte aber nach Zahlen mit Komma (also Double) aus der Tabelle vergleichen.
Wie mache ich hier einen Vergleich ?

Tschau
Martin

26.12.2021 - 15:19 Uhr

Hallo,
ich habe eine Listview im im DETAIL-Style möchte ich die Werte nach Spaltenklick sortieren lassen.

Habe dazu diesen Code gefunden, der vielversprechend aussieht:

C# - ListView Spalten sortieren

Allerdings erhalte ich hier in der letzten Zeile eine Fehlermeldung:

Fehlermeldung:
CS1955 Der nicht aufrufbare Member "ColumnSorter" kann nicht wie eine Methode verwendet werden.


                listView1.Sort();
                // ListViewItemSorter property neu setzen
                this.listView1.ListViewItemSorter = ColumnSorter(e.Column, listView1.Sorting);

Die Klasse ist gem. dem Snippet aus dem Link erstellt.
Hat jemand eine Idee, was falsch ist, wie es korrekt ist ?

Tschau
Martin

Klasse:


using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Listview_Sorter
{
    public class ColumnSorter : IComparer
    {
        //https://dotnet-snippets.de/snippet/listview-spalten-sortieren/1158
        private int col;
        private SortOrder order;
        public ColumnSorter()
        {
            col = 0;
            order = SortOrder.Ascending;
        }
        public ColumnSorter(int column, SortOrder order)
        {
            col = column;
            this.order = order;
        }

        public int Compare(object x, object y)
        {
            int result;

            try
            {
                // versuchen die 2 Werte als Datum zu vergleichen
                System.DateTime first =
                        DateTime.Parse(((ListViewItem)x).SubItems[col].Text);
                System.DateTime second =
                        DateTime.Parse(((ListViewItem)y).SubItems[col].Text);
                // Vergleichen der 2 Werte
                result = DateTime.Compare(first, second);
            }
            // Wenn der Vergleich nicht als Datum geht als string vergleichen
            catch
            {
                // Werte als string vergleichen
                result = String.Compare(((ListViewItem)x).SubItems[col].Text,
                            ((ListViewItem)y).SubItems[col].Text);
            }

            if (order == SortOrder.Descending)
            {
                //invertieren da desc
                result = result * -1;
            }
            return result;
        }
    }
}

12.05.2021 - 07:04 Uhr

Moin Danke,
hatte nach komplettem Virus-Namen gesucht und nichts gefunden.
Bei ist allerdings kein ICO im Innosetup enthalten. Habe ich mal eines ergänzt.
Muß ich mal durchtesten.

Tschau
Martin

11.05.2021 - 22:12 Uhr

haste dazu eine Quelle ? Finde dazu nichts.

11.05.2021 - 19:00 Uhr

Habe es mal dort eingetragen.
Da bin ich mal gespannt, ob das etwas bringt.

11.05.2021 - 18:43 Uhr

Hallo,
habe ein eigenes Windows-Forms-Projekt. Bei der Installation, erhalte ich immer den Hiwneis, daß dort ein Virus enthalten sei:

Trojan:Script/Wacatac.B!ml

Das ist immer bei einer Neuerstellung (mit Innosetup) des Setups und Installation auf dem lokalem Rechner.
Das ist aber nur auf einem PC.
Ansonsten erhalte ich vom Defender keine Virenhinweise.

Damit meine EIGENE Software läuft, muß ich im Defender diese Software zulassen. Das ist sehr nervend.

Weiß jemand, was ich da tun kann ?

Tschau
Martin

29.12.2020 - 12:12 Uhr

Hallo,
habe ein Ewigkeitsprojekt unter .NET. Es läuft aktuell mit .net 4.8 Framework.
Es hat verschiedene Projekte, historisch verdingt ist das Frontend (Windows Forms) in Visual Basic, die Klassen sind in C#. Klappt gut.

Wollte es nun in die nächste Generation rüberbringen, auf .NET 5.0.
Beim Zielframework, kann ich aber max. .NET Framework 4.8 auswählen, .NET 5.0 steht nicht zur Auswahl. Habe Visual Studio Community 2019, Version 16.8.3 installiert.

Geht das nicht umzustellen, ggf. mit div. Anpassungen oder muß ich noch etwas vorab tun ?

Tschau
Martin

03.10.2019 - 10:03 Uhr

Hallo,
ich habe eine Windows-Form, als MDI-Form.
Darunter sind diverse unterschiedliche Child-Forms.
Auf der MDI-Form ist eine Statuszeile.
Nun möchte ich von den Child-Forms auf diese MDI-Form den Text ausgeben.

In VB.net geht das recht gut, kann direkt per
MDIForm.Info(Text)
-> public sub Info(Text) ...
die dortige Methode aufrufen.

Unter C# kriege ich das nicht hin.
Ich muß immer eine Instanz erstellen, dann erhalte ich Zugriff darauf und dann sind alle Werte wieder auf NULL gesetzt.

Hat jemand eine Idee, wie ich das umsetzen kann ?

Tschau
Martin

29.05.2017 - 09:54 Uhr

Das geht leider nur mit einer alten Version des SQL Management Studios. In den neueren wurde der Support wieder herausgenommen.

ok, das erklärt es, daß es mit der 2014/2016er-Version nicht mehr geht. Danke.

SQL Compact läuft immer noch recht gut, man muss nur wissen dass sie nicht weiterentwickelt wird.

Ich habe leider nicht immer die Möglichkeit auf einen SQL-Server, daher setze ich nun dort SQL Compact ein. SQL-Server ist wirklich verdammt gut, sehr schnell. SQL Compact ist ca. 5-10 x langsamer, so mein Eindruck.

Habe mal nach SQLite geschaut, laut Testberichten, ist es noch langsamer als SQL Compact.

Tschau
Martin

28.05.2017 - 13:19 Uhr

Hallo Bernd,
Deine Seite hatte ich mir gestern bereits angeschaut.
Eines war mir aufgefallen:

>> Der neue SQL Server Compact von Microsoft wurde nicht aus dem normalen SQL Server entwickelt, sondern aus dem SQL Server für Windows Mobile. Deshalb ist sein SQL-Syntax anders. Die Verwaltung der Datenbanken kann auch mit Microsoft Management Studio Express durchgeführt werden. <<

Wie kann ich mit dem MMSE mir die CompactCE-Datei anschauen ?
Ich hatte mir mal den SDF Viewer installiert, aber nur die Demo-Version.

Tschau
Martin

27.05.2017 - 23:08 Uhr

Danke, gute Hinweise. Die habe ich als Ergänzung zu Bernds Hinweise noch benötigt.

Access: ajo, schon klar.
Am Liebsten ist mir ein SQL Server, sehr schnell.
Leider steht der nicht immer zur Verfügung, daher noch SQL Compact. Ist leider recht langsam.
Access ist quasi eine Notlösung.

Tschau
Martin