Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von Torni
Thema: Jahr Angabe - Hilfe für einen Beginner
Am im Forum: Grundlagen von C#

und als Zusatz kannste die case/switch bissl entschlanken:

System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(Monatszahl)

Thema: SingleFile-App
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hiho,

ich habe jetzt verschiedene Builds probiert um ein Single-File wie noch vor .net5 zu erstellen.

Ich bekomme entweder
- ein 60MB großes File in einer .exe was vorher 200KB hatte (.dotnet in selfextract)
- eine 200KB große .exe mit einer zusätzlichen .dll (gleicher Name wie die .exe)
- ein Ausgabeordner mit sämtlichen .dll der .dotnet (auch im publish-ordner)

Ist es nicht mehr möglich wie bisher kurze knappe .exe zu erzeugen (ohne die zusätzliche gleichnamige .dll) ??

Property z.B:



  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net5.0</TargetFramework>
    <PublishSingleFile>true</PublishSingleFile>
    <SelfContained>true</SelfContained>
    <RuntimeIdentifier>win-x64</RuntimeIdentifier>
    <PublishTrimmed>true</PublishTrimmed>
    <PublishReadyToRun>true</PublishReadyToRun>
  </PropertyGroup>

Thema: Connection Sting änderbar durch Benutzer
Am im Forum: Datentechnologien

Zitat von Abt
...
daher gibt es auch in 99,9999% aller Applikationen, die Access verwenden, Datenverluste und andere Probleme mit Access.
...
Zum Glück hat das niemand, in den 18 Jahren in denen unsere sehr umfangreichen Access-Applikationen liefen, denen gesagt.

Sorry für OT - konnte ich mir nicht verkneifen..

Thema: BinärDatei lesen mit festen Positionen und einem Start-"SuchText"
Am im Forum: Rund um die Programmierung

Hi gfoidl,

das kannte ich so noch gar nicht.
Sieht sehr interessant aus und muss ich mir mal zur Gemüte führen.

Sieht aber sehr vielversprechend aus, danke..

das mit dem zusammenbauen und wieder aufteilen waren fragmente des probierens...mus sich später ins reine schreien..

Danke dir, das hilft...

Thema: BinärDatei lesen mit festen Positionen und einem Start-"SuchText"
Am im Forum: Rund um die Programmierung

als .txt hochgeladen

Thema: BinärDatei lesen mit festen Positionen und einem Start-"SuchText"
Am im Forum: Rund um die Programmierung

Huhu gfoidl,

die Dateien haben eine Größe von ca. 80kb bis ca. 300kb - je nach Anzahl der darin enthaltenen Datensätze.

Das erste Aufkommen des Suchtextes (im Bild ersichtlich mit XSA40.... hat zum nächsten Suchtext XSA40... den gleichen Abstand.
Aber eben den ersten zu finden ist tricky...
Vom Suchtext aus lese ich mir dann die gelbmarkierte Zahlen aus..


Das ist mein Versuch wenn ich die Position des ersten Datensatzes kenne (im Hex-Edit geschaut):
(funktioniert so weit auch..)


            string st = "";
            BinaryReader br = new BinaryReader(File.OpenRead(directoryItem));
            br.BaseStream.Position = 0xEED4; //4 Zeichen für Listennummer

            while (br.BaseStream.Position < br.BaseStream.Length)
            {
                foreach (char mychar in br.ReadChars(4))
                {
                    st += mychar.ToString();
                }
                st += "=";

                br.BaseStream.Position += 0x38c; // 
                foreach (char mychar in br.ReadChars(6))
                {
                    if (mychar == 0)
                    {
                        st += "999999";//bestimmte DS haben keine Nummer vorgegeben- setze universelle
                        break; 
                    }
                    st += mychar.ToString();

                }
                st += ";";

                br.BaseStream.Position += 0x2fa;
            }
            br.Dispose();

            string[] t = st.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
           
            char[] separatorArray = { '=' }; 
            HashSet<string> dedupl = new HashSet<string>();

            var res = t
                .Select(s => s.Split(separatorArray))
                .Where(x => dedupl.Add(x[0]))
                .ToDictionary(x => x[0], x => x[1]);


p.s.: Der Typ der Datei Testdat.dat kann nicht hochgeladen werden.

Thema: BinärDatei lesen mit festen Positionen und einem Start-"SuchText"
Am im Forum: Rund um die Programmierung

Hi,

also der Suchtext steht als Plain-Text drin.
Nach dem Text steht das was ich auslesen muss in immer fixem Abstand zum Suchtext ebenfalls als Plain-Text drin.

Auslesen per BinraryReader und dann per .BaseStream.Position ... ist an für sich kein großes Problem aber eben den Suchtext zu finden schon. :-(
Ich komme da auf keinen grünen Zweig oder denke da zu verquert...

Thema: BinärDatei lesen mit festen Positionen und einem Start-"SuchText"
Am im Forum: Rund um die Programmierung

Hi,

bräuchte mal ein Schubs in folgender Richtung:

Ich habe eine Datei (kein Text) in der aber an bestimmten Positionen Klartextstücke stehen.
Diese müsste ich suchen und ab da dann an festen Postionen Zahlen auslesen.

Bsp. an Position ( hex ) FF2D kommt der Suchtext "blabla" und nach diesem an Position z.B. +540 Zeichen steht das was ich auslesen muss..
Dies wird innerhalb der Datei mehrmals wiederholt immer vom gleichen Suchtext an mit gleichem Abstand wie oben genannt der auszulesende....

Wie gehe ich da am bersten vor??

Thema: Wie kann ich 7 Zeilen mit je 11 Zeichen in eine Textdatei speichern?
Am im Forum: Grundlagen von C#

also wenn das Array vorgegeben ist denke ich ist die Lösung:

32, 32, 67, 67, 32, 32, 32, 35, 32, 35, 32
...

" cc # # "
...
sind doch ASCII-Codes im Array, oder??
so bekäme man 7 Zeilen mit je 11 Zeichen..

Thema: [gelöst] Wie kann ich die IP-Adresse eines Logins auf dem Server herausfinden (VBS -> C#)?
Am im Forum: Netzwerktechnologien

OK,

nach langem Hin- und Her doch noch:


            DirectoryEntry fs = new DirectoryEntry("WinNT://SERVERNAME/lanmanserver,Fileservice");
            ActiveDs.IADsFileServiceOperations iads_fs = (ActiveDs.IADsFileServiceOperations)fs.NativeObject;
            foreach (ActiveDs.IADsSession oSession in iads_fs.Sessions())
            {
                    sdf.Add(oSession.User + ";" + oSession.Computer);
            }

Thema: [gelöst] Wie kann ich die IP-Adresse eines Logins auf dem Server herausfinden (VBS -> C#)?
Am im Forum: Netzwerktechnologien

die Antwort ist leicht: weil ich absolut nicht weiß, wie ich das Skipt in c# umsetzen kann..

Ich sitze da schon tagelang dran und google mir die Finger wund..

Skript funzt einwandfrei und wird per


            Process scriptProc = new Process();
            scriptProc.StartInfo.CreateNoWindow = true;
            scriptProc.StartInfo.UseShellExecute = false;
            scriptProc.StartInfo.FileName = @"cscript";
            scriptProc.StartInfo.WorkingDirectory = Application.StartupPath + @"\Resources\";
            scriptProc.StartInfo.Arguments = "//Nologo getpc.vbs " + title;//Title ist der Übergabeparam
            scriptProc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; 
            scriptProc.Start();

aufgerufen

Thema: [gelöst] Wie kann ich die IP-Adresse eines Logins auf dem Server herausfinden (VBS -> C#)?
Am im Forum: Netzwerktechnologien

Hallo,

ich habe ein VBS mit nachfolgendem Inhalt, das ich über eine C#-Form-Anwendung aufrufe:


Dim oSession
 
Set fs = GetObject("WinNT://" & "SERVERNAME" & "/lanmanserver, FileService")
Set FSO = CreateObject("Scripting.FileSystemObject")
Set MyFile = FSO.OpenTextFile("IP_Liste.txt", 8)

For Each oSession In fs.Sessions
    On Error Resume Next
       If InStr(oSession.user, WScript.Arguments(0)) <> 0 Then 'userlogin übergeben
          MyFile.WriteLine (oSession.computer)
        End if
Next 
MyFile.Close

welchem ein loginname übergeben wird und das über das Object (fs) dessen IP-Adresse auf dem Server ausliest und in eine Datei hinzuspeichert.

Ich möchte gerne das VBS in c# implementieren, damit dies nicht mehr extern notwendig wird.
Leider scheitere ich an gerade allem und Google mag mich die Tage nicht..

Das Objekt holen klappt ja noch, wenn ich über hinzugefügten VB-Verweis gehe:

object ofs = Microsoft.VisualBasic.Interaction.GetObject(@"WinNT://" + "SERVERNAME" + "/lanmanserver, FileService");

Das weitere aber scheitert kläglich..zudem hat das erzeugte Objekt kein iEnum usw..

Hat da jmd Tipps??

Thema: Daten dynamisch einlesen und bearbeiten
Am im Forum: Code-Reviews

Grds. haben alle diese Zeilen max. 30 Spalten bzw. Marker von 001* bis 030* aber eben nicht immer alle vorhanden.


UTF8 - ok:

System.IO.File.WriteAllText("Standorte_bereinigt.csv", sb.ToString(), Encoding.UTF8);

Thema: Daten dynamisch einlesen und bearbeiten
Am im Forum: Code-Reviews

arghh StringSplitOption.RemoveEmpty ... Stirnklatsch. Danke

Zitat von T-Virus
...
Sind die Marker nicht schon pro Zeile sortiert?
Falls nicht, würde dein Ansatz mit der Prüfung stimmen.
Ansonsten wäre auch dieser überflüssig und könnte entfallen.

...
T-Virus

An für sich sortiert aber eben nicht zwingend fortlaufend, deswegen die Prüfung auf die Zahl, damit ich fehlende Marker als Semikolon in der CSV ersetze und den Inhalt des nächsten vorhandenen Markers an die richtige Position schreibe.

Thema: Daten dynamisch einlesen und bearbeiten
Am im Forum: Code-Reviews

Hi T-Virus,

ja bei den ersten beiden Absätzen gebe ich dir vollkommen recht.
Da muss ich dringend Hand anlegen.

Was die Prüfung mit ie und plen angeht ist in der Textdatei wie oben im Beispiel ein abschliessendes Pipe weswegen der Code ohne den break in ner endlosschleife münden würde.

Die Prüfung der Nummern (inkl dem *, weil wie du anmerkst leider auch im Text vorkommen kann) habe ich so, damit die Reihenfolge der Daten für die zu erstellende csv eingehalten wird bzw. die Semikolon bis zur nächsten Nummer (Marker) gesetzt werden.

Das ist ja mein Knackpunkt wie ich das anders umsetzen soll.

Ziel soll ja z.B. eine Zeile so sein:

Text1;Text2;;Text4;;;;Text8;;;;;;;;;;TextXX;;;
usw.

Thema: Daten dynamisch einlesen und bearbeiten
Am im Forum: Code-Reviews

Hallo,

ich habe eine Liste mit vielen Zeilen die folgendermaße aufgebaut ist:


001*text1|002*Text2|004*Text4|
001*text11|002*Text22|003*Text3|009*Text9|
...
Pro Zeile gibt es beliebig viele Einträge bis ca. 30 - aber nicht jede Nummer von 001* - 030* muss belegt sein
Ich möchte diese Liste gerne neu schreiben ohne die Marker (001*, 002* usw.. und dazwischen statt dem Trenner "|" ein Semikolon schreiben)

Ich habe mit folgendem Code das Ergebnis aber irgendwie ist das totaler Rübensalat..:


        public int sKFilter = 1;
        public string sKZaehler="001";

        private void RemoveAllUnneededChars(string path)
        {
            StringBuilder sb = new StringBuilder();
            string[] lines = File.ReadAllLines(path, Encoding.UTF8);

                foreach (string line in lines )
                {
                string[] parts = line.Split('|');
                int plen = parts.Count()-1;
                int ie = 1;
                sKFilter = 1;
                
                    foreach (string part in parts)
                    {
                    if (ie > plen)
                        break;

                        sKZaehler = sKFilter.ToString("D3") + "*";

                        string shelp = part.Substring(0, 3);

                        if (part.StartsWith(sKZaehler))
                        {
                            sb.Append(part.Substring(part.IndexOf(sKZaehler) + 4) + ";");
                            sKFilter = sKFilter + 1;
                        }
                        else
                        {
                            while (sKZaehler.Substring(0,3) != shelp)//nxt part ist nicht gleich der Nummer
                            {
                                sb.Append(";");
                                sKFilter = sKFilter + 1;
                                sKZaehler = sKFilter.ToString("D3") + "*";
                            }
                            sb.Append(part.Substring(part.IndexOf(sKZaehler) + 4) + ";");
                            sKFilter = sKFilter + 1;
                        }
                    ie++;
                    }
                sb.Append(Environment.NewLine);
                }

            System.IO.File.WriteAllText("Standorte_bereinigt.csv", sb.ToString());
        }

Wäre echt nett, wenn da mal jmd drüber kucken könnte und mir mal Tipps geben könnten, das bissl zu verschönern..

Thema: Gibt es den Net-Share-Befehl als API o.ä. in C#?
Am im Forum: Netzwerktechnologien

Hi,

ich finde nur immer wieder die Möglichkeit eine Ordner-Freigabe per versteckter cmd mittles "net share" zu erstellen.
Gibt es in c# ne Möglichkeit dies direkt zu erstellen?
Muss doch ne API oder dergleichen geben ?!?

Ich möchte auf dem Server eine Freigabe für einen bestimmten Ordner erstellen.


Wäre nett, wenn da jmd. einen Ansatz hätte (nehme auch gerne fertiges :-) )

Thema: [erledigt] ComboBox - SQL - Binding und zusätzliche Parameter
Am im Forum: Grundlagen von C#

Hallo,


danke für die Hilfe und genau das was Th69 schrieb meinte ich.

Thema: [erledigt] ComboBox - SQL - Binding und zusätzliche Parameter
Am im Forum: Grundlagen von C#

Hi,

ich stehe gerade mal wieder komplett auf dem Schlauch.

Ich lese ne Textdatei mit diversen SQL-Abfragen ein (ja, nur ich habe Zugriff darauf..):

Die .txt sieht in etwa so aus:

"Sichtbarer Eintrag der Combox;SQL-Statement;string"


...
            var lines = File.ReadLines("Abfragen.txt");
            var data = lines.Select(l => l.Split(';'));

            List<SQLB> alleSQL = data
                .Where(arr => arr.Length ≥ 3)
                .Select(arr => new SQLB
                {
                    Name = arr[0],
                    sql = arr[1],
                    saver = arr[2]
                })
                .ToList();

            var bindingSourceSQL = new BindingSource();
            bindingSourceSQL.DataSource = alleSQL;
            comboBox1.DataSource = bindingSourceSQL.DataSource;
            comboBox1.ValueMember = "sql";
            comboBox1.DisplayMember = "Name";
...

    public class SQLB
    {
        public string Name { get; set; }
        public string sql { get; set; }
        public string saver { get; set; }
    }
...

Wie greife ich auf den dritten "Parameter" zu ("saver") der im Array steht?

Thema: Wie suche & finde ich Images auf dem Screen?
Am im Forum: Grafik und Sound

das ist zwar alt, aber das beinhaltet tipps für dich..

BotSuite

Thema: Code vor unerlaubten Zugriff schützen
Am im Forum: Rund um die Programmierung

Abgesehen davon haben Reverse Engineers bisher immer "gewonnen".

Einen richtigen Schutz gibt es nicht wirklich.

Wir haben früher alles gecracked was auf dem Markt war, da gab es keine Hindernisse..
Heute bin ich genau auf den anderen Seite..aber auch da gewinnen die anderen..

Thema: Wie kann ich ein Array (String) in den AD User Properties setzen?
Am im Forum: Grundlagen von C#

sry..

ergänzt; dachte AD und newUser erklärt sichvon selber..

Thema: Wie kann ich ein Array (String) in den AD User Properties setzen?
Am im Forum: Grundlagen von C#

Hi,

ich stehe grad mal wieder aufm Schlauch und Google spuckt mir nur Müll aus (bin zu blöd zum Suchen)..


Mit z.B.


...

connectionPrefix= @"LDAP://ou=Benutzer,ou=zw02,ou=pplu,dc=xxx,dc=rlp,dc=de";

                DirectoryEntry dirEntry = new DirectoryEntry(connectionPrefix);
                DirectoryEntry newUser = dirEntry.Children.Add(string.Format(@"CN={0}\, {1}", Nachname.Text, Vorname.Text), "user");//OK
...
                newUser.Properties["facsimileTelephoneNumber"].Value = Faxnummer;//OK
                newUser.Properties["title"].Value = "All";//OK
                newUser.CommitChanges();
...

setze ich einzelne Werte in den Properties des Users.
Habe aber auch Properties mit mehrzeiligen Werten (wird ja ein Array sein).
Wie setzt man diese??

edit: newUser ergänzt..

Thema: Interessante Features aus Kotlin, die sich auch C# gut machen würden
Am im Forum: Rund um die Programmierung

Zitat von weismat
Statt null benutzt man in F# Options
...
Zitat von Abt
Kurz als Vergleich:
Es gibt über 1500 Jobs in Stuttgart, die einen C# Entwickler suchen.
F#: Null (In Zahlen: 0).
....


sorry, konnte ich mir nicht verkeifen :-)

Thema: Wie verwende ich Directory.Exists(...) mit einer Wildcard?
Am im Forum: Grundlagen von C#

Hi Chilic,

ja ich lese jetzt alle Verzeichnisse im 2.ten LW/Pfad einmalig in ein Array und lasse dann prüfen..
Die neuen Dirs aus dem 1.ten sind auch von der Anzahl her max 3-8, so dass dies augenmerklich auch nicht feststellbar ist bzw. solch eine Prüfung nur einmal am Tag genutzt wird...

p.s. ja, der der Server packt locker diese Anzahl an Verzeichnissen :-)
Das Anzeigen in einem Explorer dauert schon etwas..aber das brauche ich ja so nicht..

Thema: Wie verwende ich Directory.Exists(...) mit einer Wildcard?
Am im Forum: Grundlagen von C#

Danke,


auch wieder was gelernt...

Thema: Wie verwende ich Directory.Exists(...) mit einer Wildcard?
Am im Forum: Grundlagen von C#

Hi T-Virus,

das einzige was noch fest im 2.LW wäre, dass hinter dem sCommL ein Unterstrich folgt ("_").
Das ist das einzige fixe folgende Zeichen..danach diverse Bezeichner.

Ich habe es fast schon befürchtet, dass dies nicht anders realisierbar ist.

Thema: Wie verwende ich Directory.Exists(...) mit einer Wildcard?
Am im Forum: Grundlagen von C#

Hallo,

ich versuche es irgendwie hinzubekommen, ein Pfad mit Wildcard abzuprüfen.

Problemstellung:

Ich schaue, ob in einem bestimmten Haupt-Verzeichnis diverse Unterordner liegen (nach immer gleichen Schema) und setze einen neuen Namen zusammen:


...
                foreach (string mods in Directory.GetDirectories(sVSPfad"))
                {
                    string sCommL = Path.GetFileName(mods);
                    sK_PP = Lefts(sCommL, 2); //2 Zeichen ab Start
                    sVS_Archiv = Mid(sCommL, 4, 6); //6 Zeicehn ab 4.ter Pos
                    switch (sK_PP)
                    {
                        case "01":  // KO
                            sCommL = "A_1_" + sVS_Archiv;
                            break;
                        case "02":  // MZ
                            sCommL = "A_2_" + sVS_Archiv;
                            break;
                        case "03":  // LU
                            sCommL = "A_3_" + sVS_Archiv;
                            break;
                        case "04":  // TR
                            sCommL = "A_4_" + sVS_Archiv;
                            break;
                        case "05":  // KL
                            sCommL = "A_5_" + sVS_Archiv;
                            break;
                        default: //
                            break;
                    }

Jetzt will ich an dieser Stelle in einem anderen Laufwerk/Pfad prüfen, ob es ein Dir mit dem zusammengesetzen "sCommL"-Namen gibt.
Hierbei hängen aber immer hinter dem "sCommL"-DirNamen noch diverse Zeichen dran, die ich nicht bestimmen kann.
Mit Directory.Exists komme ich nicht weiter, da kein Wildcard möglich ist.

Man könnte per Directory.GetDirectories alle auslesen ist aber absolut ineffektiv und unschön, da in diesme Zweiten Laufwerk/Pfad bis zu 50.000 Verzeichnisse existieren.

Gibt es da eine Möglichkeit, denn ich stehe grade enorm auf dem Schlauch bzw. durchtrenne ihn ja fast.

Thema: DataGridView Export vor dem Exportieren nochmal bearbeiten
Am im Forum: Rund um die Programmierung



            TextWriter sw = new StreamWriter(@"D:\Planet_AS5\Images\Export.txt");

            int rowcount = SQL_dataGridView.RowCount;
            int colcount = SQL_dataGridView.ColumnCount;
            for (int i = 0; i < rowcount; i++)
            {
                for (int i2 = 0; i2 < colcount; i2++)
                {

                    sw.Write(string.Format("{0};", SQL_dataGridView[i2, i].Value.ToString()));
                }
               // sw.Write("\n");
            }
            sw.Close();

ist das nicht das was es soll??
bei mir funktioniert da seit jahren so..


edit: format der ersten Zahl übersehen...

Thema: Combobox Valuemember mit zusammengefügtem Displaymember ist "null" beim Abrufen
Am im Forum: GUI: Windows-Forms

Hallo LaTino,

vielen Dank für diesen Denkanstoß.
Werde ich mir zur Gemüte führen.

Kurzfristig hatte ich eine Quick'nDirty-Variante getestet in dem ich einfach per try/catch den String in der combo.text nach dem Leerzeichen (Aufbau ist immer gleich) abgeschnitten hatte und im catch halt wenn kein Leerzeichen, dann dies übernahm..

War nicht schön aber hatte auf die schnelle funktioniert, zumindest bis ich ne elegante Lösung finde.