- Android szakmai topik
- Milyen okostelefont vegyek?
- iPhone topik
- Apple Watch
- A hagyományos (nem okos-) telefonok jelene és jövője
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Fotók, videók mobillal
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Android alkalmazások - szoftver kibeszélő topik
Új hozzászólás Aktív témák
-
sztanozs
veterán
válasz
Parameter #4109 üzenetére
Amúgy félrenéztem a tábládat - első pillantásra az időből azt gondoltam, hogy csökkenő sorrendben van (valójában növekvőben, csak megzavart a végén a reggel 7 óra). Ehhez nem jó a programom, hanem az a leírás használható, amit a hsz-om végén írtam (ha megfordítod a logok sorrendjét excelben, akkor mondjuk jó lesz). Amúgy elég problémás egy olyan log, amiben az idö mellett nincs dátum...
-
sztanozs
veterán
válasz
Parameter #4109 üzenetére
De amit becsatoltál, az excel volt - ezért VBA-ban írtam meg... Milyen formában elérhetők a kódok?
Favágó logika: végigmegyek soronként és ha valahol OUT van, akkor (szubrutinban) a következőtől kezdve megkeresem az első IN-t és összehasonlítom a megfelelő mezőket. Ha egyeznek, akkor a végére kiírom az időt, ha nem találok egyezőt, akkor kiírom, hogy nincs egyező.
Ezzel amúgy két probléma van
1) ha valamiért nincs IN (nem került be a logba), akkor egy korábbi IN-t fog megtalálni (esetleg több out is megkapja ugyanazt az IN időpontot)
2) Ha nagyon hosszú a fájl és hosszúak a session-ök, akkor közel exponenciálisan nö a feldolgozási időEnnél jobb módszer, ha sorban dolgozod fel a logokat és egy struktúrába berakod az összes OUT-ot és menet közben szépen ellenőrzöd az IN-eket is. Ha találtál párt akkor az adott OUT sorát frissíted, majd kiveszed a struktúrából. Ami pedig a feldolgozás végén marad, ahhoz odaírod, hogy nem találtál IN-t.
Ez a módszer fájl-alapú logolásnál működhet, de azok a session-ök nem lesznek azonosíthatók, amelyek nyitása az előző fájlokban voltak.Ha pedig realtime log feldolgozás van (syslog) - vagy a log (egyébként így szokott lenni) időrendben növekvő (legkorábbi esemény van a fájl elején) rendben van, akkor érdemes az IN-eket letárolni (mivel ugye azt kapod meg először). Ha később jön egy (neki megfelelő) OUT sor, akkor az ahhoz tartozó IN dátumát beírni mellé és az IN-t kivenni az ideiglenes tárból...
-
sztanozs
veterán
válasz
Parameter #4105 üzenetére
Mondjuk ennek semmi köze nincs a C#-hoz...
Public Sub TestLogout()
Dim c As Range
For Each c In Sheet1.UsedRange.Columns(2).Cells
If c.Value = "OUT" Then
Set c = c.EntireRow
Set Row = FindRelativeRow(c)
If Row Is Nothing Then
c.Columns(6).Value = "No Entries Found"
Else
c.Columns(6).Value = Row.Columns(1)
End If
End If
Next
End Sub
Private Function FindRelativeRow(currentRow As Range) As Range
For r = currentRow.Row + 1 To Sheet1.UsedRange.Rows.Count
If Sheet1.UsedRange.Cells(r, 2).Value = "IN" Then
If Sheet1.UsedRange.Cells(r, 3).Value = currentRow.Columns(3) And _
Sheet1.UsedRange.Cells(r, 4).Value = currentRow.Columns(4) And _
Sheet1.UsedRange.Cells(r, 5).Value = currentRow.Columns(5) Then
Set FindRelativeRow = Sheet1.UsedRange.Rows(r)
Exit Function
End If
End If
Next
Set FindRelativeRow = Nothing
End Function
Új hozzászólás Aktív témák
Hirdetés
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- 129 - Lenovo Legion Pro 7 (16ARX8H) - AMD Ryzen 9 7945HX, RTX 4080
- Dell és HP szerver HDD caddy keretek, adapterek. Több száz darab készleten, szállítás akár másnapra
- DELL PowerEdge R630 rack szerver - 2xE5-2650v3 (20 mag / 40 szál, 2.3/3.0GHz), 32GB RAM, 55992Ft+ÁFA
- Lenovo ThinkPad X270 (16) - i5-7300U, 16GB, 512GB SSD, 12" FULL HD
- ÁRGARANCIA! Épített KomPhone Ryzen 7 9800X3D 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest