- ASUS ROG Ally
- Milyen TV-t vegyek?
- Milyen egeret válasszak?
- Milyen Android TV boxot vegyek?
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- OLED TV topic
- Nikon Z MILC fényképezőgépcsalád
- Fehér zakót öltenek a Super Flower platinás Leadex VII Pro tápjai
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Androidos fejegységek
Hirdetés
-
One UI 6.1 frissítésekkel túlórázik a Samsung
ma Középkategóriás telefon és ütésálló tablet is részesült belőle a hétvége előtt.
-
Négy játékkal is szemez az új Arc meghajtó
ph A 31.0.101.5522-es, WHQL aláírással rendelkező csomag egy hibát is javít
-
SteamWorld Heist II - Középpontban a történet és a küldetések
gp A folytatás érkezésére kicsit még várni kell, az új rész augusztusban debütál.
Új hozzászólás Aktív témák
-
manrick
tag
válasz Gregorius #434 üzenetére
Nem értem mivel érdemeltem ki ezt a hangnemet. Valóban egyszerű. Lehet, hogy néha olyan dolgokat kérdezek ami tök egyértelmű. Mivel ezt a nyelvet teljesen autodidakta módon tanulom és gyakorlom ezért sajnos máshogy nem megy. Vagyis még neten is körülnézhetek, de nem mindenre találok választ. Ezért kérdezem meg itt. Bocsánat érte.
Remélem nem gond ha kérdezek mégegyet.
StreamWriter swr = new StreamWriter(saveFileDialog1.FileName);
swr.WriteLine(''<html>'');
swr.WriteLine(''<head>'');
swr.WriteLine(''<title>cím</title>'');
swr.WriteLine(''</head>'');
swr.WriteLine(''<body>'');
swr.WriteLine(''<b>Felado: </b>'' + valtozo1 + ''<br>'');
swr.WriteLine(''<b>Cimzett: </b>'' + valtozo2 + ''<br>'');
swr.WriteLine(''<b>Datum: </b>'' + valtozo3 + ''<br>'');
swr.WriteLine(''<hr><br><br>'');
swr.WriteLine(''<div align=center>'' + valtozo4 + ''</div>'');
swr.WriteLine(''</body>'');
swr.WriteLine(''</html>'');
swr.Close();
Tök jól meg is csinálja a html fájlt, de ha megnyitom böngészővel, akkor az ékezetes betűk helyén olvashatatlan karakterek vannak.
Ha a html fájl megnyitom szerkeztésre, akkor teljesen olvasható minden betű.
Mi lehet az oka?
Köszi előre is.Az éremnek két oldala van. Nézz a háta mögé is!
-
manrick
tag
válasz Gregorius #440 üzenetére
Rendben van, megfogadom a tanácsodat. Azt hiszem nem is fűzök hozzá többet, zárjuk le a témát.
A karakterkészletről annyit, hogy igen, most már megy. Gondoltam hogy valami hasonló gond lesz, csak én máshogy gondolkoztam.
Én ezt írtam be:
<meta http-equiv=''Content-Type'' content=''text/html; charset=iso-8859-1''>
Köszi szépen. mindent.
[Szerkesztve]Az éremnek két oldala van. Nézz a háta mögé is!
-
amargo
addikt
válasz Gregorius #602 üzenetére
Ha jól értem olyat keres, ami egy könyvtárba teszi fel minden cuccát és nem nyulkál a rendszerbe.
Tottu
Én nem tudok róla, hogy létezne VS-ben ilyen, ha már csak a komplexitásából indulunk is ki..“The workdays are long and the weekend is short? Make a turn! Bike every day, bike to work too!”
-
babyanigirl
csendes tag
válasz Gregorius #849 üzenetére
#include <stdio.h>
#pragma hdrstop
//---------------------------------------------------------------------------#pragma argsused
int main(int argc, char* argv[])
{
FILE *fp=fopen("olvas.txt","r+" );
FILE *f=fopen("ir.txt", "w");
int szam;
char ch,kar;printf("Az eredeti szoveg: ");
while (!feof(fp)){
ch=fgetc(fp);
printf("%c", ch);
}
printf("\nBetuszamolas vegrehajtasa: i=igen n=nem: ");
scanf("%c",&szam);if (szam==105) {
fp=fopen("olvas.txt","r+" );}
}printf("\n") ;
system("pause");
fclose(fp);
fclose(f);
return 0;sajnos csak eddig jutottam bekérem a szöveget kiíratom, de hogy utána az" if "után mit kéne írni azt nem tudom, mondjuk gondoltam vmi "sizeof" tömbös karakter számlálásra de vhogy az sem jött össze, mert nem tudtam tömbbe rakni. Látszik, sajnos nagyon amatőr vagyok benne.
-
wwlaci
csendes tag
válasz Gregorius #1014 üzenetére
Szia!
találtam egy ilyen megoldást, de nem tudom, hogyan tudom
megjeleníteni ennek az eredményét listboxban.Imports System.Collections
Imports System.IO
Imports System
Public Class Form1Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End SubPrivate Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
End Sub
End ClassPublic NotInheritable Class Directory
Public Class RecursiveFileProcessorPublic Overloads Shared Sub Main(ByVal args() As String)
Dim path As String
For Each path In args
If File.Exists(path) Then
' This path is a file.
ProcessFile(path)
Else
If System.IO.Directory.Exists(path) Then
' This path is a directory.
ProcessDirectory(path)
Else
Console.WriteLine("{0} is not a valid file or directory.", path)
End If
End If
Next path
End Sub 'Main' Process all files in the directory passed in, recurse on any directories
' that are found, and process the files they contain.
Public Shared Sub ProcessDirectory(ByVal targetDirectory As String)
Dim fileEntries As String() = System.IO.Directory.GetFiles(targetDirectory)
' Process the list of files found in the directory.
Dim fileName As String
For Each fileName In fileEntries
ProcessFile(fileName)Next fileName
Dim subdirectoryEntries As String() = System.IO.Directory.GetDirectories(targetDirectory)
' Recurse into subdirectories of this directory.
Dim subdirectory As String
For Each subdirectory In subdirectoryEntries
ProcessDirectory(subdirectory)
Next subdirectoryEnd Sub 'ProcessDirectory
' Insert logic for processing found files here.
Public Shared Sub ProcessFile(ByVal path As String)
Console.WriteLine("Processed file '{0}'.", path)
End Sub 'ProcessFile
End Class 'RecursiveFileProcessor
End Class -
wwlaci
csendes tag
válasz Gregorius #1018 üzenetére
Szia!
megpróbáltam az alábbit:
For Each foundFile As String In My.Computer.FileSystem.GetFiles( _
My.Computer.FileSystem.Drives.Item(1).ToString, _
FileIO.SearchOption.SearchAllSubDirectories, "*.avi")
ListBox1.Items.Add(foundFile)
Nextaz a gond csak vele , hogy a minden meghajtón jelenlévő
System Volume Information
könyvtárnál kiakad, mert ezt nem tudja megnyitni.Ha a My.Computer.FileSystem.Drives.Item(1).ToString, helyett
egy deklarált könyvtárat pl.: "h:\filmek" írok be, akkor azt
nagyon szépen végigolvassa.
2. kérdés
Hogyan tudok kizárni meghajtót , pl a "c:" -t, vagy könyvtárakat (pl.: Windows),
hogy azokat ne olvassa be.előre is köszi.
-
wwlaci
csendes tag
válasz Gregorius #1020 üzenetére
Szia.
az alábbi kódot bemásoltam egy modulba:
Public Sub FindFiles(ByVal path As String, ByVal pattern As String, ByVal result As Collection(Of String))
Try
For Each s As String In System.IO.Directory.GetDirectories(path, pattern)
FindFiles(s, pattern, result)
Next
For Each s As String In System.IO.Directory.GetFiles(path, pattern)
result.Add(s)
Next
Catch ex As UnauthorizedAccessException
End Try
End SubAz alábbit, pedig egy button-click-be
Dim res As New Collection()
FindFiles("C:\", "*.avi", res)
For Each s As String In res
ListBox1.Items.Add(s)
Nexta modulban lévő (of string)-re azt mondja:
Microsoft.VisualBasic.Collection has no type parameters and so cannot have type arguments.[ Szerkesztve ]
-
x007
tag
válasz Gregorius #1242 üzenetére
DataSet használatakor az adatbázist cacheljük a memóriába, a lekérdezések a memóriában hajtódnak végre. EF és L2S használata esetén a lekérdezések mindig az adatbázis szerveren hajtódnak végre, ezért én nem sorolnám ezeket a kapcsolat nélküli adateléréshez. (sztem valahol a kettő között van ) Az adatmanipuláció mechanizmusa viszont valóban hasonló.
-
fLeSs
nagyúr
válasz Gregorius #1285 üzenetére
Köszi az infót.
beszéltem Mlacával, ő VS-ben programozik és asszonta, hogy még sosem vette észre, hogy a HDD lassúsága miatt lenne lassú a fordítás, igaz ő nem dolgozik baromi nagy projekteken.
Akkor ez a teszt kilőve. Ha létezik is ilyen probléma, akkor sem tudnám letesztelni, mert ahhoz vkinek adnia kéne egy nagy projektet."I press keys on a keyboard all day and click a mouse in front of a glowing rectangle. Somehow that turns into food and shelter."
-
x007
tag
válasz Gregorius #1404 üzenetére
Oh, itt már volt új info Kicsit utána néztem.
SynchronizationContext.Current
WinForms esetén: WindowsFormsSynchronizationContext
A Send/Post metódus a Control.Invoke/BeginInvoke metódust hívja meg.
WPF esetén: DispatcherSynchronizationContext
A Send/Post metódus a Dispatcher.Invoke/BeginInvoke metódust hívja meg
Szóval ez egy általános wrapper a GUI rendszerek szinkronizációs megoldása fölött. És már látom is miért jó ez...
Van pl. a BackgroundWorker, ami az AsyncOperationManager osztályon alapul, ami a SynchronizationContext-et használja a szinkronizáció megvalósításához. Ezért a BackgroundWorker WinForms és WPF alatt is tud működni. Sőőőt, ha saját ablakozó rendszert írsz, akkor megoldhatod, hogy az alatt is működjön .
Tetszik...
[ Szerkesztve ]
-
x007
tag
válasz Gregorius #1485 üzenetére
Néhány esetben azért indokolt lehet, ha nem akarod, hogy leálljon az alkalmazás. AppDomain.UnhandledException ugyan elkapja a nem kezelt kivételt, de a process elszáll.
Én például a worker szálak kódját szoktam trycatchException blockba tenni, így a catch elkapja a nem várt kivételeket, naplózhatom, és az alkalmazás sem borul.
Persze ennek használatának feltétele, hogy az alkalmazás semmikép se kerüljön inkonzisztens állapotba. Tudom... nem szép... ütemező alkalmazásnál még "végtelen ciklust" is okozhat, szóval azért óvatosan kell vele bánni.Naplózó rutinnál (pl TraceListener) is érdemes lehet a biztonság kedvéért elkapni mindent. Mondjuk ez se túl szép...
-
bpx
őstag
válasz Gregorius #1622 üzenetére
igen, erről is olvastam
csak átmenetileg oldotta meg a problémát, közben ugyanúgy megszívtam class-szal isúgyhogy segítséget kérnék
adott a következő szituáció:
IIS-en fut egy WCF szolgáltatás, amivel Silverlight kliensek kommunikálnak duplex módon
(silverlightos sakk, emberek belépnek a szerverre, majd egymás ellen tudnak játszani) - de ez lényegtelen, a konkurenciával van a gond
(azt szeretném észlelni, amikor meghal egy kliens, hogy a másik játékos ne csak üljön és várjon a semmire, hanem tudjam jelezni neki)
az ötlet a következőa szolgáltatásban van egy
static List<ClientInfo> clients;
private static readonly object syncLock = new object();ahol
public class ClientInfo
{
public string name; // játékos neve
public IChessClient client; // callback channel referencia
public DateTime lastreply; // utoljára mikor jött tőle válasz
}amikor a kliens hív a szerveren egy Login()-t, az csinál neki egy ClientInfo objektumot, és beteszi a listába
a szolgáltatás statikus konstruktorában csinálok 2 threadet:
- az egyik pl. 20 mp-ként küld egy kérést a klienseknek (PingRequest())
ezekre 1-2 mp múlva jön egy aszinkron válasz, mégpedig úgy, hogy a kliensek meghívják a szolgáltatás PingReply() fv-ét, ami bejegyzi a fenti listába, hogy most ebben az időpontban jött utoljára válasz adott klienstől- a másik meg pl. 60 mp-ként ellenőrzi a fenti clients listát, hogy kik azok, akik már mondjuk 2 perce nem válaszoltak
ezeket törli a clients listából, az ellenfelüket meg (ha van) értesítiahányszor hozzáférek a clients listához, mindig lock(syncLock)-ot használok a kölcsönös kizárás miatt
tehát 3 fő thread van (végrehajtó, "pingelő", ellenőrző)
a "végrehajtó" (Login(), PingReply()) csak ír
a "pingelő" csak olvas, és mindig helyes értéket lát
a probléma az ellenőrző threaddel van, ez olvassa és módosítja is a clients listátha csak 1 kliens van bejelentkezve, akkor minden megy rendben
ha több, akkor 1 db kliensnél nem látja a ClientInfo.lastreply aktuális értékét, hanem csak a létrehozáskori értéket (Login()) látja - viszont az összes többi kliensnél látja a friss értékeket
ez az 1 db ugye nem frissül, ha letelik X perc, a szerver úgy veszi hogy halott, törli
ilyenkor megint lesz 1 db másik, akinél nem látja az ezután érkező friss értékeket, őt is kiszórja
és ez így megy tovább, egyesével kiszór mindenkit amíg csak 1 játékos marad az egész szerveren, úgy hogy közben mindenki szépen válaszolt és folyamatosan volt kommunikáció, "ping"-re is jöttek válaszokha esetleg valaki eljutott volna idáig az olvasásban (), [link] van kód is, csupaszítva, csak a lényeget meghagyva
-
bpx
őstag
válasz Gregorius #1627 üzenetére
"Akár úgy, hogy egy extra metódushívást beleiktatsz a kontraktba, ami periodikusan küld egy dummy üzenetet"
igen, a PingRequest()/PingReply() kb. ezt csinálja
"A kódhoz kellene még a konfig is. Nagyon sok mindent jobbá lehet tenni vagy katasztrofálisan el lehet rontani egy WCF szolgáltatás konfigurációjával."
az a gond, hogy Silverlight vs. IIS duplex kommunikáció van (amit hát mégegyszer nem biztos, hogy így csinálnék, de most már ez van...), tehát muszáj pollingduplexhttpbinding-et használni (vagy még nettcpbinding-ot lehetne, de szerintem az én esetemben a clients lista konkurrens hozzáférésével lesz valami gond, nem a szolgáltatás konfigurációjával)
egyébként itt a konfig, semmi extra nincs benne (maxOutputDelay="00:00:01" - a kliens 1 mp-enként pollozzon, hogy jött-e neki üzenet)"Az mindenesetre már látszik, hogy ha void aszinkron hívásokat akarsz csinálni, akkor ajánlott az interfészen az OperationContract-ban megjelölni IsOneWay=true-ként és akkor nem kell külön szálat indítani minden ilyen híváshoz."
na ez egy érdekes dolog, ezt így is a csináltam, a kliens (callback channel) összes metódusa
[OperationContract(IsOneWay=true)]
void ... (...)alakú
ha nem így csináltam, akkor amikor a klienshez hozzáadtam a referenciát a szolgáltatáshoz (és feldolgozta a wsdl-t és generálta a megfelelő dolgokat), akkor dobott is egy warning-ot hogy ez így nem fog működni Silverlighttal - tehát ez megvan
ennek ellenére, ha szerver oldalon hívok egy ilyen függvényt, és közben már nincs is kliens - akkor ha lejár a bindingban megadott timeout (2 perc, default 1 perc) kivételt dob, sőt addig a 2 percig még blokkol is (ezért indítottam még ennek is külön threadet és raktam try..catch blokkba
[ Szerkesztve ]
-
bpx
őstag
válasz Gregorius #1629 üzenetére
ez se oldotta meg - de az InstanceContext hasznos volt, nem kellenek statikus tagok, stb
közben próbálkoztam még pár dologgal, szálakat/listát máshogy szervezni, timeout-okkal játszani, de sehogy sem tökéletesjövő hét szerdán leadás, meg doksit is kellene írni hozzá, szóval lehet ez kimarad belőle
-
bpx
őstag
válasz Gregorius #1635 üzenetére
az már a csütörtök délelőtti gányolásom eredménye, azóta nem foglalkoztam vele
akkor írtam át, hogy ClientInfo helyett csak a callback channel referenciát tárolja, meg az ellenőrzést is máshogy csinálja (a játékos nevét eleve nem használta semmire, a dátum meg pont az új ellenőrzés miatt nem kell)
az ellenőrző thread csak ott maradt egyelőre, de el se indítom, szóval simán lehet, hogy helytelen, de az nem futigen a foreach-es dolog is előjött, elején ott is van alatta kommentben, hogy hogyan lenne érdemes
a tanácsokat köszönöm
az a baj, hogy közel a határidő, és van egy csomó más dolog, amivel foglalkozni kellene
úgy vagyok már vele, hogy bemutatom ezt a részt kihagyva, úgy legalább működik a játék többi funkciója + nem hal szét random módon a kapcsolat, aztán le van tudva a tárgy legalább...
szerettem volna több dolgot is megvalósítani, de szvsz ez a Silverlight-WCF kombó elég nagy melléfogás lett, sokkal egyszerűbb lett volna vmi (n+1). webes portált csinálni, mint a többiek nagy része, amit összekattintgat az ember 1 nap alatt
szóvalt ezt normálisan legfeljebb önszorgalomból fogom valamikor, ha már felvet a sok szabadidő -
FehérHolló
veterán
válasz Gregorius #1752 üzenetére
Mindjárt megnézem. Értelmesnek hangzik. Én anno linkedlist-tel oldottam meg, a kölcsönös kizárást meg egy autoresetevent (ha karod, szemefor) valósította meg.
Szerk.: Én .NET 3.5-ben dolgoztam, ez 4.0. Hasznos cucc. Köszi!
[ Szerkesztve ]
Skynet is real. It's called Google.
-
tototos
őstag
válasz Gregorius #1752 üzenetére
Köszi ez nagyon jól hangzik. Szóval amikor megjön az üzenet akkor bepakolom és a másik oldalt pedig csak folyamatosan olvasom és ő várakozik mindig ha üres. Ha egymás után gyorsan jönnek az üzenetek akkor sem fog megszakítást generálni gondolom hanem szépen feldolgozhatom az üzeneteket.
Ú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!
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Promenade Publishing House Kft.
Város: Budapest