Inlägg

Inlägg som Biberu har skrivit i forumet
Av Biberu

@Litenskit: Jag arbetar inte med swec längre så jag är definitivt fel person.

Av Biberu
Skrivet av Adoby:

Enklaste är väl bara att redigera helt manuellt och skriva in radnumret där du vill ha det.

Är du verkligen i rätt delforum nu?

Av Biberu

@henkiii: Min korta variant är väl inte direkt självförklarande... För scripts som ska sparas brukar jag undvika andra alias än ? (Where-Object) och % (ForEach-Object) och istället skriva ut fullständiga namn och parametrar, men det är smidigt med kryptiska oneliners för saker som bara ska köras någon gång från terminalen.

Av Biberu

@henkiii: +1 för powershell, men det går att skriva som en oneliner eftersom att texten kan pipas till ForEach-Object och man kan ge replace ett reguljärt uttryck direkt.

Get-Content in.txt | ForEach-Object -Begin { $i = 0 } -Process { $_ -replace "x$", ++$i }

Eller förkortat:

cat in.txt | % { $i = 0 } { $_ -replace "x$", ++$i }

text x text x text x

text 1 text 2 text 3

Resultat
Av Biberu

@anon292978: En idé skulle kunna vara att kika på att köra utvecklingen i virtuella maskiner eller containrar istället. En stor fördel med det är att du kan scripta upp en isolerad miljö som lätt kan återskapas, delas mellan maskiner / personer och versionshanteras precis som resten av din kod. Har du flera projekt med olika beroenden så undviker du även konflikter mellan dessa på så sätt. Gissningsvis deployar du inte heller till Windows och det är en god idé att ha utvecklingsmiljöer (inte detsamma som ditt värdsystem) som liknar produktion.

Ta en titt på Docker:
https://docs.docker.com/get-started/

Av Biberu

@Greyguy1948: Aha. Jag hann med lite Pascal, men ALGOL var före min tid.

Av Biberu
Skrivet av Greyguy1948:

Tack det fungerar perfekt med AnsiString!

Så bra! Hur kommer det sig att du sitter med Pascal?

Av Biberu

@Greyguy1948: Strängar kan bara hålla 255 tecken så ditt resultat har blivit avklippt, först inuti loopen och sedan en gång till när det prefixas med "Close doors: " innan det skrivs ut. Prova att byta till AnsiString istället för String om din kompilator stödjer det, eller ta bort skiljetecknet så bör de saknade siffrorna dyka upp.

AOpendoors : AnsiString; ACloseDoors : AnsiString;

Av Biberu

@RobinJacobsson: Du höjde ribban rejält från hello world, glöm inte bort att ha kul under tiden bara! Ingen kod, bara ett par råd: Försök att arbeta igenom ett par små tabeller manuellt för att lära känna problemet innan du försöker uttrycka det i kod. (Gör du det så kommer du förresten snart märka hur många kombinationer det blir om du inte kan tämja det på något sätt!) Eller omvänt: Om du t.ex. är intresserad av att lära dig arbeta med databaser så försök att hitta något där problemet är mer känt och du kan fokusera på verktyget, det blir lätt mycket med allt på samma gång. Lycka till!

Skickades från m.sweclockers.com

Av Biberu
Skrivet av RobinJacobsson:

Så detta borde funka även på avdelningar som rymmer olika antal medarbetare, jag tänker eftersom en avdelning kräver tex 6st människor och en annan kanske bara kräver 1.

Ja, bara skapa en station per människa som behöver vara på avdelningen:

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAP8AAAGDCAYAAADkn8...

Av Biberu
Skrivet av RobinJacobsson:

Och vad menar du med att genomsnittsvärdet blir 4 i din förra post?

Om du har valt att placera Arbetare 1 på Station 1 (A1,S1), Arbetare 2 på Station 2 (A2,S2) och Arbetare 3 på Station 3 (A3,S3) så blir summan av deras preferenser 4 (1 + 1 + 2), men det finns andra kombinationer som är värda mer, t.ex. (A2,S1), (A1,S2), (A3,S3) med 5 (2 + 1 + 2). Om du använder en summa, ett genomsnitt eller någon annan metod för att bedöma belåtenheten spelar ingen roll för exemplet, poängen är först och främst att du vill hitta alla möjligheter och sedan välja den bästa.

Observera att du måste veta hur lösningen ser ut innan du kan uttrycka den i kod, och att inget av det här behöver någon databas ännu.

Skrivet av RobinJacobsson:

Vad är tex 8 0 2 här under? Är det förslag på preferenser för A3? Där 0 är icke lämpad för S2 och 8 inneb'r att den absolut kan vara l'mpad för S1 tex?

Precis så. 0 skulle innebära att arbetaren inte är kvalificerad för stationen, 1 att den är det, och 8 att den av någon anledning är väldigt föredragen.

Av Biberu

@RobinJacobsson: Du kan generera upp kombinationer av arbetare och stationer utan att slumpa något alls. Har lite ont om tid så jag hoppas att det blir förståeligt, men här är en enkel metod för att undersöka alla möjligheter. Ponera att du har tre arbetare och tre stationer, och att alla inte kan arbeta överallt, ungefär så här:

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAARMAAACbCAYAAABBPX...

Om varje kant i grafen viktas med arbetarens preferens (och den kan du slumpa, variera beroende på tidigare placering eller liknande) så kan du representera det i en matris på det här sättet:

| S1 S2 S3 ---+--------- A1 | 1 1 0 A2 | 2 1 1 A3 | 8 0 2

För att generera en kombination så kan du börja med att ta den första stationen S1, och se att den går att kombinera med tre arbetare: A1, A2 och A3, samt deras preferenser:

[(A1,S1,1)] ; Lista med (arbetare, station, preferens) [(A2,S1,2)] ; Ignorerar i exemplet [(A3,S1,8)] ; Ignorerar i exemplet

Nu har du två stationer kvar i din lista, så för varje kombination du redan har hittat lägger du till de nya. För den första listan blir det då:

[(A1,S1,1),(A1,S2,1)] ; A1 redan vald. [(A1,S1,1),(A2,S2,1)] ; Ok [(A1,S1,1),(A3,S2,0)] ; A3 får inte.

Nu har du tre nya listor från den första, men bara en är giltig att fortsätta med. En station återstår:

[(A1,S1,1),(A2,S2,1),(A1,S3,0)] ; A1 redan vald. [(A1,S1,1),(A2,S2,1),(A2,S3,1)] ; A2 redan vald. [(A1,S1,1),(A2,S2,1),(A3,S3,2)] ; Ok

Nu har du en möjlig kombination: Alla stationer är tillsatta med arbetare, och om du summerar preferenserna så får du ett värde på 4, det kan du ta som den totala belåtenheten. Genererar du resten av kombinationerna på samma sätt så kommer du hitta fler möjliga alternativ, och kan välja den med högst belåtenhet.

Av Biberu

@RobinJacobsson: Skulle föreslå att du väntar med databasen och istället fokuserar på hur du löser problemet med att tilldela Arbetare med olika Kunskaper och Preferenser (som kan beräknas utifrån önskemål, senaste placering etc.) olika Stationer. Hur skulle processen se ut utan någon kod alls? Eller om du tog bort preferenser ur ekvationen?

Tips: Du kan dela upp varje avdelning i enskilda roller som måste fyllas (Avdelning 1 skulle alltså bli 3 roller, Avdelning 2 bli 6 roller etc.), och sedan rita upp vilka roller som kan fyllas av vilka personer. Hur genererar och poängsätter du giltiga kombinationer (manuellt)?

Av Biberu

@dafox: Vad använder du för locale?

Av Biberu

@MacAllan: Du kanske inte har något tangentbord på din enhet, men om du har det så scrollar Home upp till toppen av sidan i alla vanliga webbläsare.

Skickades från m.sweclockers.com

Av Biberu

@naikon: Det är ofta bättre om du kan skriva funktioner som ka ta vad de behöver som parametrar och sedan returnera ett resultat utan sidoeffekter. Just nu anropar du t.ex. ReadXML utan parametrar, och den läser själv in vad den behöver från det omgivande scopet och förändrar sedan det istället för att returnera ett svar. Förutom att det tenderar att göra koden svårare att förstå och arbeta med så drar du inte nytta av Powershells pipeline på det sättet. Något sådant här vore lättare för en enskild funktion:

# Säger vad den behöver: function Read-XML($filename) { [xml]$xml = Get-Content $filename # Returnerar resultatet: return @{ temperature = $xml.weatherdata.forecast.tabular.time[0].temperature.value weather = $xml.weatherdata.forecast.tabular.time[0].symbol.name weathertomorrow = $xml.weatherdata.forecast.tabular.time[4].symbol.name sunrise = $xml.weatherdata.sun.rise sunset = $xml.weatherdata.sun.set } }

Istället för nästlade funktioner så skulle du även kunna strukturera det som fristående funktioner där resultaten är avsedda att pipas vidare till nästa steg på det här sättet:

function Get-WeatherLocation() { do { $location = Read-Host -Prompt "Stad" } while($location -ne "GBG") return $location } function Get-WeatherData( [Parameter(ValueFromPipeline=$true)] $location ) { return @{ Väder = "Sharknado" Plats = $location } } function Format-WeatherReport( [Parameter(ValueFromPipeline=$true)] $data ) { return "Vädret i {0} är: {1}" -f ` $data.Plats, ` $data.Väder } Get-WeatherLocation | ` # Be användaren om stad Get-WeatherData | ` # Hämta aktuell väderdata Format-WeatherReport # Skriv ut rapport


Sedan bör du inte anropa Set-ExecutionPolicy i början av ditt script. Det kommer påverka din miljö på ett oväntat och potentiellt skadligt sätt, det kräver att du kör scriptet som administratör, och du skulle inte komma så långt utan att få köra scriptet ändå.

Av Biberu

@burton666: Frågan är om det inte är tydligast att använda din inputvariabel om det ändå är den du vill ha kvar, men du kan göra på det här sättet:

(^.*(.)(?=.*\2$).*$)

aaa abc accdef affdef

https://regex101.com/r/CYn1cm/1


Förklaring: Det inre mönstret testar ett tecken åt gången och använder en lookahead ((?= ...)) för att kontrollera om det följs av noll eller flera tecken (.*) samt sig själv (\2 är en backreference till den andra gruppen ((.)) – det egna tecket) och strängens slut ($).

Av Biberu

@burton666: Så här?

(.)(?=.*\1$)

aaa abc accdef affdef

https://regex101.com/r/a6sGM3/1

Av Biberu

@cyprus: Tips: om du kör windows så kan du infoga smilies i de flesta program via Win + . (punkt). 👌

Av Biberu

@anon267242: Har inte möjlighet att lyssna nu, men vad jag undrade var specifikt om källa på att parlamentariker inte skulle ha förstått vad de röstade på. Framgår det någonstans? Vi behöver dock inte dividera över det, min avsikt var att sätta emot för ryktesspridning och grundlösa uttalanden i diskussionen i stort, det finns tillräckligt många som drar förhastade slutsatser här i tråden ändå. Samma resonemang gäller för dina anklagelser om korruption ("dom som sitter i EU är bara ute efter pengar som vanligt"). Det är farligt att häva ur sig sådana lösryckta påståenden. Utveckla och förklara vad du menar, eller avstå för allas bästa.