[C++] fixa rättstavning lik C# Visual studio 2017

Permalänk
Avstängd

[C++] fixa rättstavning lik C# Visual studio 2017

Tjo,

Jag har en del stav fel därför jag har stannat kvar på C# då programmet hjälper till att stava rätt och när jag testade C++ så rätt stava den inte och det gör att jag har svårt att stava rätt, så jag undra om det går att ställa in på något sätt?

Sen undra jag lite över när man kodar i C++ hur ska man veta vilken import som man ska välja finns det någon bra sidan att utgå från eller hur funkar det har mest bara jobbat med C#?

Jag behöver koda en socket server men väljer bort C# då den måste funka bra i Linux samt att regex funkar bättre i C++.

Visa signatur

Man är inte dum för att man har stavproblem.
Läs mer om min synfel Visual Snow
Om mig ----> #16970666

Permalänk
Medlem

@superegg:

Java är lösningen på dina problem

Visa signatur

i5-8600k, 64GB 3200Mhz, Asus 3080Ti, Samsung 960 PRO 512GB, 2x Predator 27" IPS 1440p G-Sync 144Hz
- Citera gärna för svar! -

Permalänk
Medlem
Skrivet av superegg:

Tjo,

Jag har en del stav fel därför jag har stannat kvar på C# då programmet hjälper till att stava rätt och när jag testade C++ så rätt stava den inte och det gör att jag har svårt att stava rätt, så jag undra om det går att ställa in på något sätt?

Sen undra jag lite över när man kodar i C++ hur ska man veta vilken import som man ska välja finns det någon bra sidan att utgå från eller hur funkar det har mest bara jobbat med C#?

Jag behöver koda en socket server men väljer bort C# då den måste funka bra i Linux samt att regex funkar bättre i C++.

Iom .NET Core så känns det ju iofs som att .NET (Core) på Linux blivit ett seriöst alternativ, om du är van vid C# så tycker jag det är värt att överväga om inte projektets natur utesluter det.

Visa signatur

Desktop: Ryzen 5800X3D || MSI X570S Edge Max Wifi || Sapphire Pulse RX 7900 XTX || Gskill Trident Z 3600 64GB || Kingston KC3000 2TB || Samsung 970 EVO Plus 2TB || Samsung 960 Pro 1TB || Fractal Torrent || Asus PG42UQ 4K OLED
Proxmox server: Ryzen 5900X || Asrock Rack X570D4I-2T || Kingston 64GB ECC || WD Red SN700 1TB || Blandning av WD Red / Seagate Ironwolf för lagring || Fractal Node 304

Permalänk
Medlem

Du menar att du inte får alternativ när du börjar skriva nått?
I så fall är det bara att ta hem rätt paket:

C# and Visual Basic Roslyn compilers
MSBuild
Static analysis tools
Text Template Transformation
Visual Studio C++ core features
Visual C++ 2017 Redistributable Update
VC++ 2017 version 15.9 v14.16 latest v141 tools
Windows 10 SDK (10.0.17763.0)

Vad jag använder atm.
Sedan vet jag att man kan tappa den funktionen typ random och då är det bara att reset settings.

Permalänk
Permalänk
Avstängd
Skrivet av Mordin:

@superegg:

Java är lösningen på dina problem

Själva client kommer vara i Java, tror inte jag vill ha allt i Java.

Skrivet av evil penguin:

Iom .NET Core så känns det ju iofs som att .NET (Core) på Linux blivit ett seriöst alternativ, om du är van vid C# så tycker jag det är värt att överväga om inte projektets natur utesluter det.

Är det denna som gäller för att få den att funka i Linux https://www.mono-project.com/download/vs/?

Vad jag har fattat det som så är C# inte så bra när det gäller just Regex då är C++ mycket bättre, men den kommer bara läsa från en rad i taget och inte en hel text så kanske funka.

Har hållit på runt 9 år med C# så börja kunna den ganska bra.

Visa signatur

Man är inte dum för att man har stavproblem.
Läs mer om min synfel Visual Snow
Om mig ----> #16970666

Permalänk
Medlem

@superegg: Mono är inte .NET Core. .NET Core bygger nog dock en hel del på Mono.

Sist jag testade var Mono betydligt mer lättinstallerat än .NET Core (på Linux). Om man ger sig på Mono måste man vara rätt noga med att läsa vilken funktionalitet som finns implementerad, hela det traditionella .NET-ramverket stöds inte (och .NET Core stöder förstås inte heller hela gamla .NET).

Jag har aldrig stött på problem med RegEx i .NET, vad är det som inte skulle fungera?

Permalänk
Medlem
Skrivet av superegg:

Själva client kommer vara i Java, tror inte jag vill ha allt i Java.

Är det denna som gäller för att få den att funka i Linux https://www.mono-project.com/download/vs/?

Vad jag har fattat det som så är C# inte så bra när det gäller just Regex då är C++ mycket bättre, men den kommer bara läsa från en rad i taget och inte en hel text så kanske funka.

Har hållit på runt 9 år med C# så börja kunna den ganska bra.

Nej, jag menade .NET Core runtime/SDK, dvs https://dotnet.microsoft.com/download (Linux-fliken).

Du får samma "dotnet" kommandoradsverktyg som du har för .NET Core på Windows för att köra, bygga, osv.

Mono är väl fortfarande mer av ett work-in-progress att återimplementera klassiska .NET för Linux/annat.
Klassiska .NET var rätt Windows-beroende, .NET Core blev ju en nystart som satsade på riktigt officiellt stöd för andra plattformar än Windows.

Visa signatur

Desktop: Ryzen 5800X3D || MSI X570S Edge Max Wifi || Sapphire Pulse RX 7900 XTX || Gskill Trident Z 3600 64GB || Kingston KC3000 2TB || Samsung 970 EVO Plus 2TB || Samsung 960 Pro 1TB || Fractal Torrent || Asus PG42UQ 4K OLED
Proxmox server: Ryzen 5900X || Asrock Rack X570D4I-2T || Kingston 64GB ECC || WD Red SN700 1TB || Blandning av WD Red / Seagate Ironwolf för lagring || Fractal Node 304

Permalänk
Avstängd
Skrivet av KAD:

@superegg: Mono är inte .NET Core. .NET Core bygger nog dock en hel del på Mono.

Sist jag testade var Mono betydligt mer lättinstallerat än .NET Core (på Linux). Om man ger sig på Mono måste man vara rätt noga med att läsa vilken funktionalitet som finns implementerad, hela det traditionella .NET-ramverket stöds inte (och .NET Core stöder förstås inte heller hela gamla .NET).

Jag har aldrig stött på problem med RegEx i .NET, vad är det som inte skulle fungera?

Jag läste för några år sen att Regex tar mycket längre tid medans C++ tog mycket mindre tid på sig och att man spara några ms på det.

Skrivet av evil penguin:

Nej, jag menade .NET Core runtime/SDK, dvs https://dotnet.microsoft.com/download (Linux-fliken).

Du får samma "dotnet" kommandoradsverktyg som du har för .NET Core på Windows för att köra, bygga, osv.

Mono är väl fortfarande mer av ett work-in-progress att återimplementera klassiska .NET för Linux/annat.
Klassiska .NET var rätt Windows-beroende, .NET Core blev ju en nystart som satsade på riktigt officiellt stöd för andra plattformar än Windows.

Ah, skulle man kunna koda i Windows och sen dumpa källkoden i Linux och sen köra build får man den som deb eller måste man starta med "dotnet"?

Visa signatur

Man är inte dum för att man har stavproblem.
Läs mer om min synfel Visual Snow
Om mig ----> #16970666

Permalänk
Medlem
Skrivet av superegg:

Tjo,

Jag har en del stav fel därför jag har stannat kvar på C# då programmet hjälper till att stava rätt och när jag testade C++ så rätt stava den inte och det gör att jag har svårt att stava rätt, så jag undra om det går att ställa in på något sätt?

Sen undra jag lite över när man kodar i C++ hur ska man veta vilken import som man ska välja finns det någon bra sidan att utgå från eller hur funkar det har mest bara jobbat med C#?

Jag behöver koda en socket server men väljer bort C# då den måste funka bra i Linux samt att regex funkar bättre i C++.

Jag rekommenderar att installera extensionen Resharper om du använder dig av Visual studio som IDE.

Skickades från m.sweclockers.com

Permalänk
Medlem
Skrivet av superegg:

Jag läste för några år sen att Regex tar mycket längre tid medans C++ tog mycket mindre tid på sig och att man spara några ms på det.

Ja, det låter väl högst sannolikt att det skulle vara så. Sedan hur mycket "mycket" är och om det spelar roll för din applikation är ju en annan fråga.

Skrivet av superegg:

Ah, skulle man kunna koda i Windows och sen dumpa källkoden i Linux och sen köra build får man den som deb eller måste man starta med "dotnet"?

Du kan t.ex. koda i Visual Studio i Windows, bygga antingen i Windows eller Linux (just det spelar väl inte så stor roll).

Sedan beror det lite på vad du väljer att göra. Du kan ju alltid köra en applikation på valfri plattform genom "dotnet" förutsatt att du har .net core runtimen installerad på maskinen. Men om du valt att vid bygget skapa en "self-contained deployment" (publish -r) för en viss plattform så inkluderas allt som behövs för att köra applikationen och du kan bara starta applikationen rakt av (på den valda plattformen).
Om du vill skapa deb-paket så är den typen av paketering inget som händer som bara händer som standard. Jag såg t.ex. lite snabbt https://www.nuget.org/packages/dotnet-deb/ men det går väl även att använda mer traditionella verktyg för deb-paketering när du har byggresultatet färdigt.

Visa signatur

Desktop: Ryzen 5800X3D || MSI X570S Edge Max Wifi || Sapphire Pulse RX 7900 XTX || Gskill Trident Z 3600 64GB || Kingston KC3000 2TB || Samsung 970 EVO Plus 2TB || Samsung 960 Pro 1TB || Fractal Torrent || Asus PG42UQ 4K OLED
Proxmox server: Ryzen 5900X || Asrock Rack X570D4I-2T || Kingston 64GB ECC || WD Red SN700 1TB || Blandning av WD Red / Seagate Ironwolf för lagring || Fractal Node 304

Permalänk
Medlem
Skrivet av superegg:

Jag läste för några år sen att Regex tar mycket längre tid medans C++ tog mycket mindre tid på sig och att man spara några ms på det.

Så kan det nog vara, eller också inte, beroende på vilken text man jobbar med, vilket reguljärt uttryck man kör och vilken RegEx-motor man använder.

Här är ett exempel på där standardvalet i C++ är 17 gånger långsammare än standardvalet i C#:
https://stackoverflow.com/questions/19798653/c-vs-net-regex-performance?lq=1

Skrivet av superegg:

Ah, skulle man kunna koda i Windows och sen dumpa källkoden i Linux och sen köra build

Jag har inte kört .NET Core på Linux, men erfarenheten av att köra kod kompilerad i Visual Studio i Windows med Mono på Linux säger att det finns en hel del fallgropar. Filsystemen fungerar till exempel rejält olika med avseende på fillåsning, så om man till exempel ska läsa en fil en annan process skriver till så beter det sig programmet olika på de två plattformarna. Att testa på båda systemen är med andra ord viktigt.

Permalänk
Datavetare
Skrivet av KAD:

Här är ett exempel på där standardvalet i C++ är 17 gånger långsammare än standardvalet i C#:
https://stackoverflow.com/questions/19798653/c-vs-net-regex-performance?lq=1

Bara en FYI, C++ programmet och F# programmet gör inte samma sak. C++ programmet gör 4 gånger så mycket beräkningar då personen som skrivit det inte riktigt har koll på OpenMP....

Det borde se ut så här (fixade lite andra icke-ideomatiska C++ prylar, finns garanterat mer att putsa på här)

#include <numeric> #include <chrono> #include <codecvt> #include <cstdio> #include <fstream> #include <iostream> #include <regex> #include <string> #include <vector> using namespace std; wstring load(string filename) { ifstream in(filename); in.seekg(0, ios::end); vector<char> contents(in.tellg()); in.seekg(0, ios::beg); in.read(contents.data(), contents.size()); return wstring_convert<codecvt_utf8_utf16<wchar_t>>{}.from_bytes(contents.data()); } unsigned count(wregex rsplit, wstring s) { return accumulate(wsregex_token_iterator(s.begin(), s.end(), rsplit, -1), wsregex_token_iterator(), 0u, [](unsigned sum, wstring m) { return sum + m.length(); }); } int main(int argc, char* argv[]) { wstring str = load("pg10.txt"); wstring re = load("re.txt"); for (int _ = 0; _ < 3; _++) { vector<unsigned> res(4); auto start = chrono::steady_clock::now(); #pragma omp parallel for for(unsigned i = 0; i < res.size(); i++) { res[i] = count(wregex(re), str); } auto stop = chrono::steady_clock::now(); auto elapsed = chrono::duration<double>(stop - start); printf("(%u, %u, %u, %u) %fs\n", res[0], res[1], res[2], res[3], elapsed.count()); } }

Notera #pragma omp parallell __for__

På min laptop blir det då ungefär samma hastighet i F# som i C++.
Edit: och då det är denna text (en engelsk version av bibeln) som används är det ju helt onödigt att konvertera allt till Unicode. I dotnet har man inget val då det händer automatiskt, kör man med "string" i stället för "wstring" (Unicode i C++) så blir C++ versionen ca x5 snabbare.

Till TS: är det intellisense du vill ha?

I Visual Studio borde du ju få det automatiskt även för C++. Ser även Linux nämnas, om du är van med Visual Studio är ju Visual Studio Code trevligt då det finns till Windows, MacOS och Linux. VS Code har intellisense för C++ och det fungerar på alla OS som stöds.

Om det är kommentarer du vill ha rättstavade finns det flertalet tillägg till VC Code för sådant, t.ex. detta.

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Avstängd

Tänkte testa med dotnet och se hur det funkar. Men nu jag har fått hjälp med rättstavningen så kan jag börja lära mig mer om C++.

Skrivet av evil penguin:

Ja, det låter väl högst sannolikt att det skulle vara så. Sedan hur mycket "mycket" är och om det spelar roll för din applikation är ju en annan fråga.

Du kan t.ex. koda i Visual Studio i Windows, bygga antingen i Windows eller Linux (just det spelar väl inte så stor roll).

Sedan beror det lite på vad du väljer att göra. Du kan ju alltid köra en applikation på valfri plattform genom "dotnet" förutsatt att du har .net core runtimen installerad på maskinen. Men om du valt att vid bygget skapa en "self-contained deployment" (publish -r) för en viss plattform så inkluderas allt som behövs för att köra applikationen och du kan bara starta applikationen rakt av (på den valda plattformen).
Om du vill skapa deb-paket så är den typen av paketering inget som händer som bara händer som standard. Jag såg t.ex. lite snabbt https://www.nuget.org/packages/dotnet-deb/ men det går väl även att använda mer traditionella verktyg för deb-paketering när du har byggresultatet färdigt.

Jag har försök att köra med https://www.nuget.org/packages/dotnet-deb/ utan att lyckas vet dock inte vad jag gör för fel då jag har gjort det som står på deras wiki. Vet du om man kan köra med Windows Forms Application eller är det nån annan man måste använda för att det ska funka?

Visa signatur

Man är inte dum för att man har stavproblem.
Läs mer om min synfel Visual Snow
Om mig ----> #16970666

Permalänk
Medlem

Om du vill koda i C++ till Linux och inte väljer .net core så kan rekommendera dig titta på Qt framework.

Permalänk
Avstängd
Skrivet av HappyPie:

Om du vill koda i C++ till Linux och inte väljer .net core så kan rekommendera dig titta på Qt framework.

Coolt, får kolla på det när tid finns.

Visa signatur

Man är inte dum för att man har stavproblem.
Läs mer om min synfel Visual Snow
Om mig ----> #16970666