Hirdetés
Ú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
Hirdetés
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- exHWSW - Értünk mindenhez IS
- Új belépő a Honornál
- Filmvilág
- Xiaomi 15T Pro - a téma nincs lezárva
- Hálózati / IP kamera
- Fejhallgató erősítő és DAC topik
- Építő/felújító topik
- MasterDeeJay: Egy nem átlagos Asus videókártya (GTX950M 2GB GDDR3)
- sziku69: Fűzzük össze a szavakat :)
- sziku69: Szólánc.
- További aktív témák...
- 27% - NZXT C1200 White 1200W 80 PLUS Gold ATX3.1 Tápegység!
- Dell Latitude 5580,15.6",FHD,i5-6300U,8GB DDR4,256GB SSD,WIN11
- Apple iPhone 13 128 GB Midnight 100% Akkumulátor 1 év Garancia Beszámítás Házhozszállítás
- HP EliteBook 840 G7 14" i5 10210u, 16GB RAM, SSD, jó akku, számla, 6 hó gar
- Acer Nitro V 16 AI Gaming Laptop! Ryzen 260 / RTX 5060 / 16GB DDR5 / 1TB NVMe! BeszámítOK
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest




