GeirGrusom Skrevet 12. juli 2007 Del Skrevet 12. juli 2007 "Hvordan bruker jeg flere threads?" er greit "Hva er matrix klassen til?" er greit "Er det bedre å bruke backgroundworker en å lage en ny thread?" er greit "Kopierer jeg og limer inn den koden her?" er ikke greit Vi vi hjelpe deg på et generelt plan, den eneste jeg vet om på forumet her som skriver ferdige løsninger, er aadnk Lenke til kommentar
AnaXyd Skrevet 12. juli 2007 Forfatter Del Skrevet 12. juli 2007 (endret) @jorn79: Hva tror du ellers forumet er til da? Få høre at man skal søke på google? Da kunne man likegjerne hatt en enkelt side på diskusjon.no hvor det stod: Trenger du hjelp til noe..? Bruk Google! "Hvordan bruker jeg flere threads?" er greit"Hva er matrix klassen til?" er greit "Er det bedre å bruke backgroundworker en å lage en ny thread?" er greit "Kopierer jeg og limer inn den koden her?" er ikke greit Vi vi hjelpe deg på et generelt plan, den eneste jeg vet om på forumet her som skriver ferdige løsninger, er aadnk 9058914[/snapback] Nå var ikke triggerspm mitt strengt tatt et spm om jeg skal lime inn der eller ikke da... Endret 12. juli 2007 av AnaXyd Lenke til kommentar
GeirGrusom Skrevet 12. juli 2007 Del Skrevet 12. juli 2007 Hvis flere hadde googlet før de postet på forumet, hadde ikke C++ forumet vært gjennomsyret av folk som lurte på hvorfor console vinduet lukker seg så fort at man ikke rekker å lese noe. Lenke til kommentar
AnaXyd Skrevet 12. juli 2007 Forfatter Del Skrevet 12. juli 2007 (endret) Hvis flere hadde googlet før de postet på forumet, hadde ikke C++ forumet vært gjennomsyret av folk som lurte på hvorfor console vinduet lukker seg så fort at man ikke rekker å lese noe. 9058951[/snapback] Det der er sant... Og det er også utrolig mange andre eksempler på slikt. Men, når folk spør dumt om noe, fyrer jeg ikke løs med all aggresjon og spetakkel, men tar det med ett smil og sier at det har blitt diskutert her før, men her har du svaret. Jeg sitter som regel på forumet her for å hjelpe, skaffe informasjon, eller få hjelp. Det er jo mange bonusting, som å lese hvor mye rart som er i Humor tråden, eller lignende. Men når jeg tenker meg om, handler dette forumet mest om å hjelpe, eller skaffe hjelp til noe. Det blir som å spørre i kantina på skolen, hvordan man skal koble den nye TV'en man fikk til jul. EDIT: Nå føler jeg det kommer en skikkelig preken fra jorn79 her.. Endret 12. juli 2007 av AnaXyd Lenke til kommentar
j000rn Skrevet 12. juli 2007 Del Skrevet 12. juli 2007 Tror vi har forskjellige meninger om hva som er poenget med forumet... Lenke til kommentar
AnaXyd Skrevet 12. juli 2007 Forfatter Del Skrevet 12. juli 2007 Tror vi har forskjellige meninger om hva som er poenget med forumet... 9059097[/snapback] Hva mener du da? Lenke til kommentar
Spartakus Skrevet 12. juli 2007 Del Skrevet 12. juli 2007 (endret) Han mener sikkert at noen (mis)bruker dette forumet bare de støter på litt motgang, mens andre vil helst spare seg for pinlige kunnskapsavsløringer og søker på Google først, FØR de evt spør her Endret 12. juli 2007 av xtc Lenke til kommentar
j000rn Skrevet 12. juli 2007 Del Skrevet 12. juli 2007 Han mener sikkert at noen (mis)bruker dette forumet bare de støter på litt motgang, mens andre vil helst spare seg for pinlige kunnskapsavsløringer og søker på Google først, FØR de evt spør her 9059186[/snapback] Han spør på forumet FØR han møter motgang. AnaXyd kommer aldri til å lære noen ting når han ikke gidder å prøve selv. Når man copy/paster en funksjon inni en annen funksjon, ikke har hørt om AND/OR i if-settninger, etc... Dette minner om EKSTREMT svake basiskunnskaper og copy/paste "programmering" av dimensjoner. Og det betyr at det faktisk er forumet her som programmerer for han, og han bare copy/paster inn koden i programmet sitt. Hvis han ikke er interesert i å gjøre en liten innsats selv så syntes jeg han bør slutte å programmere. Dette begynner bare å bli irriterende... Lenke til kommentar
AnaXyd Skrevet 12. juli 2007 Forfatter Del Skrevet 12. juli 2007 Altså, jeg må jo lære ett sted også da? Som dere andre her, har dere sikkert utdannelse innenfor dette og jobber kanskje med det... Jeg er helt selvlært gutt som begynte med en guide til å lage en simpel trojaner i VB6. Jeg meldte meg på Beta Experience til Micrisoft og fikk Visual Studio 2005 Beta i posten. Deretter har jeg skaffet meg den ferdige versjonen som jeg bruker nå. Jeg har jo ikke kodet mye rart, men nå har jeg begynt for alvor med å prøve å få til noen litt mer avanserte programmer enn en knapp som får det til å komme tekst i en tekstboks! Dere syntes sikkert jeg spør helt idiotiske spm, og jeg er helt lost i hue osv. Men tenk etter selv.. Har ikke dere vært på samme nivå en gang..? Lenke til kommentar
j000rn Skrevet 12. juli 2007 Del Skrevet 12. juli 2007 Dere syntes sikkert jeg spør helt idiotiske spm, og jeg er helt lost i hue osv. 9059624[/snapback] Nei, men jeg syntes du er jævelig egoistisk som ikke gidder å prøve å finne ut av noenting selv før du spør andre og bruker opp tiden deres. At du ikke har giddet å lese en tutorial for nybegynnere (og ikke kan de mest elementære tingene) -- og samtidig forventer du at vi skal komme opp med kode for avanserte ting. Da vi andre startet så begynte vi med å lese en bok, tutorial, etc... Og når vi stod fast så spurte vi om ting vi lurte på. Du begynner på helt motsatt ende! Du spurte om vi hadde gått på skole. Du vet at på skolen så må man lære alt selv, og så spør man læreren når man lurer på noe. Det er bare på barneskolen hvor man kan spørre om ALT uten å gjøre noe innsats selv. Hvor gammel er du egentlig? Lenke til kommentar
AnaXyd Skrevet 12. juli 2007 Forfatter Del Skrevet 12. juli 2007 Jeg er 17 år.. Og ja, jeg inrømmer at jeg har misbrukt litt av hjelpen jeg kan få her... Det er ikke til å stikke under en stol! Men, som jeg har prøvd å si en del ganger, fyrte du av på et omtrent vanlig spm. Jeg hadde kanskje ikke lest så mye om akkurat den tingen, men jeg tenkte at dere kunne forklare kort og enkelt hva det var fornoe. Det er så mye enklere å forstå! Lenke til kommentar
ze5400 Skrevet 12. juli 2007 Del Skrevet 12. juli 2007 Jeg har egentlig bare en ting å si. Wrox Beginning Visual Basic 2005 Les den - når du har gjort det kan du komme tilbake å spørre om ting du lurer på. Alle andre her har lært seg programmering ut ifra å lese bøker og/eller tutorials, samt learning by doing. Ingen grunn til at du ikke skal kunnet gjøre det samme. Beklager om dette ble litt harskt. Lenke til kommentar
AnaXyd Skrevet 12. juli 2007 Forfatter Del Skrevet 12. juli 2007 (endret) Takk for tips! Skal se om jeg får tak i den.. Har også en annen beginner guide, så jeg får kjøre igjennom den i morra.. Får håpe jeg har litt mer kunnskap da..! Jeg lurer på en liten ting i den rekursive funksjonen. Når den kopierer, trodde jeg at den skulle vise hver enkelt fil den kopierte. Det ser ihvertfall slik ut i koden. Men, det som skjer, er at det er kun den siste filen som blir vist. (Vist i en Label) Hvis noen av dere gidder, kan dere se på koden her. (Denne formen har en button, og en label) Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click RecursiveCopyFiles("G:\1", "G:\2", True, True) End Sub ' Recursively copy all files and subdirectories from the ' specified source to the specified destination. Private Sub RecursiveCopyFiles( _ ByVal sourceDir As String, _ ByVal destDir As String, _ ByVal fRecursive As Boolean, ByVal overWrite As Boolean) Dim i As Integer Dim posSep As Integer Dim sDir As String Dim aDirs() As String Dim sFile As String Dim aFiles() As String ' Add trailing separators to the supplied paths if they don't exist. If Not sourceDir.EndsWith(System.IO.Path.DirectorySeparatorChar.ToString()) Then sourceDir &= System.IO.Path.DirectorySeparatorChar End If If Not destDir.EndsWith(System.IO.Path.DirectorySeparatorChar.ToString()) Then destDir &= System.IO.Path.DirectorySeparatorChar End If ' Recursive switch to continue drilling down into dir structure. If fRecursive Then ' Get a list of directories from the current parent. aDirs = System.IO.Directory.GetDirectories(sourceDir) For i = 0 To aDirs.GetUpperBound(0) ' Get the position of the last separator in the current path. posSep = aDirs(i).LastIndexOf("\") ' Get the path of the source directory. sDir = aDirs(i).Substring((posSep + 1), aDirs(i).Length - (posSep + 1)) ' Create the new directory in the destination directory. System.IO.Directory.CreateDirectory(destDir + sDir) ' Since we are in recursive mode, copy the children also RecursiveCopyFiles(aDirs(i), (destDir + sDir), fRecursive, overWrite) Next End If ' Get the files from the current parent. aFiles = System.IO.Directory.GetFiles(sourceDir) ' Copy all files. For i = 0 To aFiles.GetUpperBound(0) ' Get the position of the trailing separator. posSep = aFiles(i).LastIndexOf("\") ' Get the full path of the source file. sFile = aFiles(i).Substring((posSep + 1), aFiles(i).Length - (posSep + 1)) Try ' Copy the file. System.IO.File.Copy(aFiles(i), destDir + sFile, False) Label1.Text = ("Copied " & sFile & " to " & destDir) Catch ex As Exception If overWrite = False Then Label1.Text = (ex.Message) Label1.Text = ("Skipping..." & ex.Message) Else System.IO.File.Copy(aFiles(i), destDir + sFile, True) Label1.Text = ("Overwriting old " & sFile & " in " & destDir) End If End Try Next i End Sub End Class Noe må vel være galt? Eller skal det være sånn? Endret 12. juli 2007 av AnaXyd Lenke til kommentar
Degeim Skrevet 12. juli 2007 Del Skrevet 12. juli 2007 (endret) Om jeg forstod deg riktig: Labelen vil vise den filen som sist ble kopiert. Når kopieringsprosessen er over, vil da den siste filen være den som viser. Dersom du vil at alle kopierte filer skal viser, kan du for eksempel gjøre som følger: Før du starter kopieringen (feks under Button1_click): Label1.Text = "" I kopieringssuben, erstatt Label1.Text = ("Copied " & sFile & " to " & destDir) med Label1.Text &= "Copied " & sFile & " to " & destDir & Environment.Newline Da vil alle kopierte filer vise. Endret 12. juli 2007 av Degeim Lenke til kommentar
aadnk Skrevet 13. juli 2007 Del Skrevet 13. juli 2007 (endret) Kanskje noe som følger er bedre (en kan også kalle CopyFiles fra en BackgroundWorker og dermed unngå DoEvents): Public Class Form1 Delegate Sub Progress(ByVal File As String, ByVal Percentage As Double) Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click CopyFiles("D:\Temp\A", "D:\Temp\B", True, , AddressOf ProgressUpdater) End Sub Public Sub ProgressUpdater(ByVal File As String, ByVal Precentage As Double) ' Oppdaterer merknadsboks Me.Text = String.Format("Copying file {0}. {1}% done.", File, Precentage) ' Lar hendelser kjøres (slik at teksten oppdateres) Application.DoEvents() End Sub Public Sub CopyFiles(ByVal Source As String, ByVal Destination As String, ByVal SubDirectories As Boolean, _ Optional ByVal SearchPattern As String = "*.*", Optional ByVal Callback As Progress = Nothing) ' Lag en liste over alle filene vi skal kopiere Dim aFiles() As String = IO.Directory.GetFiles(Source, SearchPattern, IIf(SubDirectories, _ IO.SearchOption.AllDirectories, IO.SearchOption.TopDirectoryOnly)) ' Kopier hver av dem til destinasjonsmappen For Index As Integer = 0 To aFiles.Length - 1 Try Dim sNewPath As String = IO.Path.Combine(Destination, _ aFiles(Index).Substring(Source.Length).TrimStart("\")) ' Forsøk å kopiere filen IO.Directory.CreateDirectory(IO.Path.GetDirectoryName(sNewPath)) IO.File.Copy(aFiles(Index), sNewPath, True) ' Informer om progresjonen If Callback IsNot Nothing Then Callback(aFiles(Index), Index / aFiles.Length) End If Catch ex As Exception ' Du bør selv bestemme hvordan du vil reagere på feil Callback("Error: " & ex.ToString, (Index + 1) / aFiles.Length) End Try Next End Sub End Class Endret 13. juli 2007 av aadnk Lenke til kommentar
AnaXyd Skrevet 13. juli 2007 Forfatter Del Skrevet 13. juli 2007 Wow... Takk! Og her burde det vel være lett å legge til en progressbar funksjon også? Og er denne en erstatning til den rekursive koden? Forresten, når jeg husker det: Hva gjør et Callback? Takk igjen! Du er til stor hjelp! Lenke til kommentar
aadnk Skrevet 13. juli 2007 Del Skrevet 13. juli 2007 (endret) Forresten, når jeg husker det: Hva gjør et Callback? 9064866[/snapback] I denne koden er den en delegate - en funksjonspeker som brukes for at CopyFiles skal kunne rapportere tilbake til kalleren om progresjonen. Det er såklart ikke alltid nødvendig - en kunne fint lagt inn Label1- og ProgressBar1-oppdateringene direkte inn i CopyFiles, men med den konsekvens at funksjonen blir knyttet fullstendig opp mot formen og må modifiseres om den limes inn annetsteds. Det er aldri dumt å håndheve modularitet og abstraksjon i koden, slik at den kan stå for seg selv. Og er denne en erstatning til den rekursive koden? 9064866[/snapback] Ja, dette er en erstatning til den forrige, rekursive funksjonen. Når du vil ha en progresjon over operasjonen, må du lage en liste over alle filene for å finne ut hvor mange du skal kopiere. Dersom dette ikke er nødvendig, er den rekursive funksjon å foretrekke. Og her burde det vel være lett å legge til en progressbar funksjon også? 9064866[/snapback] Det burde være lett å slenge inn en progresjonskontroll om du bruker Precentage-argumentet. Endret 13. juli 2007 av aadnk Lenke til kommentar
AnaXyd Skrevet 13. juli 2007 Forfatter Del Skrevet 13. juli 2007 (endret) Takk igjen! Da har jeg lært litt om Callback og Delegates også.. Dette ble jo bare skikkelig bra! Slik gjorde jeg det med progressbaren: ' Oppdaterer progressbarProgressBar1.Maximum = 100 ProgressBar1.Value = Precentage * 100 Måtte gange Precentage med 100 for å få riktig.. Men en ting til.. ' Oppdaterer merknadsboks Label1.Text = String.Format("Copying file {0}. {1}% done.", File, Precentage) Når jeg fjerner Precentage fra denne, funker ikke koden. Jeg vil gjerne ha vekk denne, da jeg har en progressbar allerede.. Ser ut som den må være med, av en eller annen grunn? Endret 13. juli 2007 av AnaXyd Lenke til kommentar
aadnk Skrevet 13. juli 2007 Del Skrevet 13. juli 2007 (endret) Når jeg fjerner Precentage fra denne, funker ikke koden. Jeg vil gjerne ha vekk denne, da jeg har en progressbar allerede.. Ser ut som den må være med, av en eller annen grunn? 9064960[/snapback] Les litt på System.String-metoden. Du må fjerne {1} for å kunne fjerne parameter nummer to: ' Oppdaterer merknadsboks Label1.Text = String.Format("Copying file {0}.", File) Endret 13. juli 2007 av aadnk Lenke til kommentar
AnaXyd Skrevet 13. juli 2007 Forfatter Del Skrevet 13. juli 2007 Aaah! Er det slik det fungerer! Kan du forklare kort hvorfor det er {1} og {0} inni der? Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå