- Októberi bevetésre indul a hardveralakulat
- Továbbfejlesztette az SP szériás, kompakt tápegységeit a Lian Li
- Itt van az ASUS legfrissebb, AMD platformra épülő mini PC-je
- Jegeli pénznyelő projektjét az Apple, az okosszemüvegben látják a jövőt
- Olcsónak ígérkező, madzagos egér jelent meg az ASUS ROG-os portfóliójában
- Kormányok / autós szimulátorok topikja
- Vezetékes FEJhallgatók
- Kettő együtt: Radeon RX 9070 és 9070 XT tesztje
- Milyen TV-t vegyek?
- Itt van az ASUS legfrissebb, AMD platformra épülő mini PC-je
- Amlogic S905, S912 processzoros készülékek
- Ami Kínában OnePlus Pad Pro, az errefelé mégis csak Pad 2 lett
- Milyen notebookot vegyek?
- Adatmentés - HDD - SSD - Flash
- ThinkPad (NEM IdeaPad)
Új hozzászólás Aktív témák
-
don_peter
senior tag
válasz
don_peter #7988 üzenetére
Közben elkészült a program és szerencsére jól működik..
A 16bit-es színképzés okozott némi fejtörést, de végül megadta magát..A kép bináris átalakítása is szépen megtörténik, szóval minden jól alakult.
A kérdés még fent állhat, hogy minek is kellett ez, hát ehhez:
DPTP System - Időjárás állomás beltéri -
joysefke
veterán
-
Goose-T
veterán
válasz
don_peter #7984 üzenetére
Egyszerű, akkor nem kell levenni előle a 0x-et, lehet úgy is parse-olni. Itt találsz egy példát, hogyan kell csinálni.
-
Goose-T
veterán
válasz
don_peter #7980 üzenetére
string input = "0x0148, 0x0148, 0x0148, 0x0148, 0x0148, 0x0148, 0x0148, 0x0968, 0x0148, 0x0968, \n 0x0148, 0x0969, 0x0148, 0x0988, 0x0168, 0x0168, 0x0168, 0x0168, 0x0968, 0x0988";
var list = input.Split(',').Select(s =>
{
string clean = s.Trim().Replace("0x", String.Empty);
if (int.TryParse(clean, out var number))
{
return number;
}
return 0;
})
.ToList();Így lehet mindent egyszerre megcsinálni. Először splittelni kell, utána trimmelni (ez kiveszi a whitespace karaktereket), aztán kiszedni a 0x-eket, majd a végén meg kell próbálni int-ként parse-olni. Ha nem sikerül, akkor 0-t adunk vissza. Egyébként ha 0x van az elejükön, akkor ezek véletlenül nem hexadecimális számok akarnak lenni?
-
lord.lakli
őstag
válasz
don_peter #7265 üzenetére
Ha még nem használt függvényt hívsz mindenképpen nézd meg a leírását. CopyTo-nál második paraméter index, hogy hová másoljon. Te folyamatosan felül írtad. A korábbi példádban nem vettem észre a hibát
harylmu megírta a szebb MemoryStream-et is. Annyi apró módosítást tennék, hogy
var osszefuzott = new byte[rows.Length+rows2.Length+rows3.Length+rows4.Length];
helyett csakbyte[] osszefuzott;
legyen. Felesleges előre memóriát foglalni neki.(#7271) ibenny: ha több kiterjesztésre van szükséged, akkor pedig egy List<string>-be vedd fel és használd Contains függvényt Linq-ben.
-
Froclee
őstag
válasz
don_peter #7265 üzenetére
Ez meg egy overkill (mivel a BlockCopy-nak is működnie kéne), de pl nálam ez is üzemel:
byte[] rows = new byte[8] { 1, 1, 1, 1, 1, 1, 1, 1 };
byte[] rows2 = new byte[8] { 1, 1, 1, 1, 1, 1, 1, 1 };
byte[] rows3 = new byte[8] { 0,0,0,0,0,0,0,0 };
byte[] rows4= new byte[8] { 1, 1, 1, 1, 1, 1, 1, 1 };
var osszefuzott = new byte[rows.Length+rows2.Length+rows3.Length+rows4.Length];
using (MemoryStream ms = new MemoryStream(osszefuzott))
{
ms.Write(rows, 0, rows.Length);
ms.Write(rows2, 0, rows2.Length);
ms.Write(rows3, 0, rows3.Length);
ms.Write(rows4, 0, rows4.Length);
osszefuzott = ms.ToArray();
} -
lord.lakli
őstag
válasz
don_peter #7249 üzenetére
Ha már beolvasod az összeset, akkor mehet fapadosan Array.CopyTo segítségével is.
var osszefuzott = new byte[file1.Length + ... + file4.Length]
file1.CopyTo(osszefuzott, 0);
file2.CopyTo(osszefozott, file1.Length);
...Amikhez nem kell az összes fájlt beolvasni (néhány példa):
Sokkal szebb és nem kell egybe beolvasnod, ha MemoryStream.Write-al csinálod és a MemoryStream-re nyomsz egy ToArray()-t.Lehet List<byte>-al, mint amivel ajánlották. Ott tudsz Concat()-olni, vagy Linq-es Concat().
(#7250) ibenny:
Linq-nél nézz szét. Kérd be az összes file-t (*.*), majd Where feltételben megfogalmazni, hogy az általad megadott kiterjesztésű fájlok maradjanak csak. Kiterjesztés vizsgálatához: Path.GetExtension() -
don_peter
senior tag
válasz
don_peter #7240 üzenetére
Közben megoldottam egy sor for() ciklussal, de ha van jobb ötlet akkor szívesen venném.
uint AddrCount = 0;
for (i = 0; i < file1.Length; i++)
{
FileRoms[AddrCount++] = file1[i];
}
for (i = 0; i < file2.Length; i++)
{
FileRoms[AddrCount++] = file2[i];
}
for (i = 0; i < file3.Length; i++)
{
FileRoms[AddrCount++] = file3[i];
}
for (i = 0; i < file4.Length; i++)
{
FileRoms[AddrCount++] = file4[i];
}
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Gamer PC i5-12400F, RTX 4060, 16 GB DDR5, 1 TB NVMe kiváló állapot(1 éves)! 410.000 Ft
- DELL latitude 5410 Tartós Üzleti Laptop 14" -70% i5-8365U 4Mag 8Gb 256GB SSD FHD IPS
- Acer Nitro 5 AN515 I7 9 gen 32 gb 1650
- Intel Core i7-6700 100% tesztelt, hűtő nélkül
- Intel Core i3-6100T 100% tesztelt, hűtő nélkül
- GYÖNYÖRŰ iPhone 13 Pro 128GB Silver -1 ÉV GARANCIA - Kártyafüggetlen, MS3387, 96% Akkumulátor
- Gamer PC-Számítógép! Csere-Beszámítás! I7 10700K / RX 6700XT 12GB / 32GB DDR4 / 1TB SSD
- 8 GB-os GeForce RTX 2060 SUPER (OEM HP) - garanciával
- BESZÁMÍTÁS! MSI B450 R5 5500 16GB DDR4 512GB SSD RX 6600 XT 8GB Fractal Design Core 2500 ADATA 600W
- Apple iPad Air 4 64GB, Újszerű, 1 Év Garanciával
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest