Behöver kritik till texteditor

Trädvy Permalänk
Medlem
Plats
Umeå
Registrerad
Maj 2008

Behöver kritik till texteditor

Jag har jobbat ett tag på ett texteditorsprogram som kallas Clean ToiXt Editor och jag har försökt göra det simpelt och med så "clean look" som möjligt.
Jag skulle nu behöva lite kritik och tips på vad som borde läggas till i programmet.

Det finns att laddas ner här

Programmet är skapat i C# med visual studio 2008.
Detta är mitt första seriösa program så därför behöver jag så mycket hjälp jag kan få

Corsair 650W || MSI Z68A-GD65 (G3) || Asus R9 290 OCII || Intel i7 2600K, 3.4GHz || 4x4GB 1600MHz Corsair || Arch Linux || Fractal Design R4 || 120hz BenQ 24" 2ms + Benq 24" 2 ms || Cyborg Rat 7 || Corsair K90 || Logitech Z5500 5.1 Ljudsystem

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Jan 2004

Räcker det inte med svaren från din första tråd?
http://www.sweclockers.com/forum/showthread.php?s=&threadid=8...

Trädvy Permalänk
Medlem
Plats
Umeå
Registrerad
Maj 2008

Jag hade helt glömt bort den:P Men jag har uppdaterat programmet många gånger sen dess så det var mest kritiken jag ville ha på de nya funktionerna.

Skulle vilja lägga till att jag inte försöker få den till nått som liknar notepad++ och programmerings texteditors utan den ska vara en ersättare till windows notepad program. Så inget program för avancerade användare.

Corsair 650W || MSI Z68A-GD65 (G3) || Asus R9 290 OCII || Intel i7 2600K, 3.4GHz || 4x4GB 1600MHz Corsair || Arch Linux || Fractal Design R4 || 120hz BenQ 24" 2ms + Benq 24" 2 ms || Cyborg Rat 7 || Corsair K90 || Logitech Z5500 5.1 Ljudsystem

Trädvy Permalänk
Medlem
Plats
Gävle
Registrerad
Aug 2005

Testade i Win 7 och hittade dessa små 'buggar'...

+ "Find and replace..." bör nog finnas i Edit-menyn och inte i View-menyn
+ Replace-funktionen ser ut att alltid söka från början av dokumentet, och inte från där cursorn befinner sig, testa att skriva "dddd" i dokumentet, sök sedan efter "d" och ersätt med "dd", du kan nu trycka på replace-knappen hur många ggr du vill och programmet kommer alltid markera första träffen, om du trycker på "replace all"-knappen går programmet in i en oändlig loop och man måste stänga ned det med task manager
+ När fönstret är dockat bör kanske det valda dock-alternativet vara förbockat i menyn, och förbockningen tas bort om man flyttar fönstret manuellt
+ Titlebar och trayikonen saknar beskrivande text, hjust nu är texten "Untitled"
+ Inställningarna "show minimize", "show maximize", och "insert pm/am format" i Configure... gör ingenting, inte vad jag kan se i alla fall.
+ Kanske bör där dyka upp en balloon tip eller liknande när man har skrivit 160kB, om man fyller upp textrutan går det inte att skriva eller klistra in ngt mer, kanske att användaren vill veta varför
+ När filen sparas läggs ett extra par CR+LF till i slutet på dokumentet. Skapa ett nytt dokument, skriv en bokstav, spara filen, filen tar upp 3 bytes och inte 1 byte som den ska. Om du stänger ned programmet och öppnar samma fil, lägger till ytterligare en bokstav och sparar ned filen tar den upp 6 bytes. Osv.
+ "Spara som" dialogrutan dyker upp två ggr, om man anger två olika namn ser man att den första dialogrutan inte gör ngt (den väljer alltid namnet från den andra dialogrutan).
+ När man sparat dokumentet deaktiveras både "Save" och "Save As". "Save As" bör nog alltid vara aktiverat.
+ "Open" i menyn bör nog skrivas "Open..."
+ View-menyn bör nog berikas med "TitleBar" för att visa/gömma titlebar.
+ Kanske lite fler "line breaks" (separators) i menyerna, mellan "Open..." och "Save" i File-menyn., mellan "Statusbar" och "Maximize" i View-menyn., mellan "Dock in lower right corner" och "Dock up" i Edit|Dock-meny, mellan "Dock right" och "Middle".

Trädvy Permalänk
Medlem
Plats
antarktis
Registrerad
Maj 2009

var snäl att läga upp käll koden istälet för den kompilerade filen, du vet att alla siter inte pådit system och jobar...

Trädvy Permalänk
Medlem
Plats
Gävle
Registrerad
Aug 2005

Iom att det krävs .NET kan det vara en bra idé att skriva det under rubriken "System Requirements", kanske t.o.m. lägga till den informationen i installationsprogrammet. Inte alla har .NET installerat. Om man t.ex. försöker köra programmet i Windows XP utan .NET installerat får man ett felmeddelande som inte säger så mkt ("The application failed to initilialize properly (0xc0000135). Click on OK to terminate the application."). Jag tycker iof att det borde finnas ngn smidig "preloader" som man kan använda, som kollar om .NET finns installerat och visar en länk var man kan ladda ned det istället för att visa ett så pass obskyrt felmeddelande, har tyvärr inte så stor erfarenhet av .NET men kanske vet google/forumsmedlemmar här mer.

Vilken version av .NET som du använder är oxå viktigt. För att ladda ned de filer som .NET-program behöver kan man googla ".net redistributable download", nu är bara frågan vilken version som behövs.

Trädvy Permalänk
Medlem
Plats
Umeå
Registrerad
Maj 2008
Citat:

Ursprungligen inskrivet av fqvarfort
Testade i Win 7 och hittade dessa små 'buggar'...

+ "Find and replace..." bör nog finnas i Edit-menyn och inte i View-menyn
.........
+ Kanske lite fler "line breaks" (separators) i menyerna, mellan "Open..." och "Save" i File-menyn., mellan "Statusbar" och "Maximize" i View-menyn., mellan "Dock in lower right corner" och "Dock up" i Edit|Dock-meny, mellan "Dock right" och "Middle".

Tack för alla dem här "buggarma", det var precis vad jag behövde. Jag ska börja jobba på det på direkten och sedan ladda upp det på sidan så fort jag har fixat allt, återkommer med "resultat"

Corsair 650W || MSI Z68A-GD65 (G3) || Asus R9 290 OCII || Intel i7 2600K, 3.4GHz || 4x4GB 1600MHz Corsair || Arch Linux || Fractal Design R4 || 120hz BenQ 24" 2ms + Benq 24" 2 ms || Cyborg Rat 7 || Corsair K90 || Logitech Z5500 5.1 Ljudsystem

Trädvy Permalänk
Medlem
Plats
Umeå
Registrerad
Maj 2008

Programmet finns nu ute med alla bugfixar (hoppas jag) på www.silentapplication.se

Anledningen att det står Untitled vid trayiconen och titlebaren är att det är namnet på den nuvarande icke existerande filen, eller vad man ska säga:P

PM/AM format ändrar formatet på tiden som man kan infoga genom att trycka på F6 eller "Insert>Time"

Show minimize/maximize i inställningsmenyn ställer in om man ska kunna se/klicka på minimize resp maximize i titlebaren (jag har ändrat så att man inte kan kryssa i dem utan att "Show titlebar" är i kryssat)

@fqvarfort: Det där får jag nog ta och titta på senare eftersom det kan nog vara ganska komplicerat och dessutom så orkar jag inte det just nu

@moflon: Tyvärr vill jag ej lägga ut källkoden eftersom jag inte vill ha folk som kopierar mig och liknande.

Mer kritik och eventuella frågor välkommnas:D

Corsair 650W || MSI Z68A-GD65 (G3) || Asus R9 290 OCII || Intel i7 2600K, 3.4GHz || 4x4GB 1600MHz Corsair || Arch Linux || Fractal Design R4 || 120hz BenQ 24" 2ms + Benq 24" 2 ms || Cyborg Rat 7 || Corsair K90 || Logitech Z5500 5.1 Ljudsystem

Trädvy Permalänk
Medlem
Plats
Gävle
Registrerad
Aug 2005

Från den nya versionen 1.8...

+ Edit|Insert|Time med inställningen PM/AM lägger inte till "AM" eller "PM" efter tiden, om klockan är 1 på dagen lägger den till texten "01:00:00" och inte "01:00:00 PM"
+ I About-rutan står det "Silent Application" 2 ggr, lite redundant kanske
+ I Tray-menyn står det "New...", i vanliga menyn står det "New"
+ Save-alternativet i Tray-menyn är alltid aktiverat även om dokumentet redan är sparat (ska nog replikera beteended hos File|Save-menyn).
+ Titlebar uppdateras inte automatiskt med namnet på dokumentet när man sparar eller öppnar ett dokument (det uppdateras dock om man väljer att dölja titlebar och sedan visa den igjen i inställningarna).
+ Om man dockar fönstret förbockas alternativet i menyn, om man sedan flyttar fönstret manuellt är alternativet fortfarande ibockat.
+ Istället för "show minimize" och "show maximize" kanske det ska stå "allow minimize" resp "allow maximize"
+ View|Toolbar är inte förbockat om toolbar'n är synlig
+ View|Statusbar likaså
+ "Show minimize" och "show maximize" ska vara aktiverade/deaktiverade redan när konfigureringsrutan visas (testa att visa configure... -> klicka bort titlebar -> klicka på OK -> visa configure igjen -> det går nu att trycka på "show maximize" och "show minmize", trots att "show titlebar" är avmarkerad)
+ Om man avmarkerar "show titlebar" och markerar "show in taskbar" visas inte titelraden i taskbar (i alla fall i Win7, borde väl fungera likadant i XP/Vista). Testa att visa titlebar och taskbar och se vad som står i taskbar, avmarkera sedan titlebar och se vad som står i taskbar.
+ Om man väljer all text som finns i dokumentet och väljer Delete, försvinner Undo. Om man däremot markerar all text och tar bort det med Backspace finns Undo kvar.

Trädvy Permalänk
Medlem
Plats
127.0.0.1
Registrerad
Sep 2003
Citat:

Ursprungligen inskrivet av fqvarfort
Iom att det krävs .NET kan det vara en bra idé att skriva det under rubriken "System Requirements", kanske t.o.m. lägga till den informationen i installationsprogrammet. Inte alla har .NET installerat. Om man t.ex. försöker köra programmet i Windows XP utan .NET installerat får man ett felmeddelande som inte säger så mkt ("The application failed to initilialize properly (0xc0000135). Click on OK to terminate the application."). Jag tycker iof att det borde finnas ngn smidig "preloader" som man kan använda, som kollar om .NET finns installerat och visar en länk var man kan ladda ned det istället för att visa ett så pass obskyrt felmeddelande, har tyvärr inte så stor erfarenhet av .NET men kanske vet google/forumsmedlemmar här mer.

Vilken version av .NET som du använder är oxå viktigt. För att ladda ned de filer som .NET-program behöver kan man googla ".net redistributable download", nu är bara frågan vilken version som behövs.

Dock om man väljer publish i projektet så kan installern till programmet känna av vilken .net version man har, sen laddar den ner nyare version om behövs...

1: Intel i7-3930K | 32GB Corsair Dominator GT | Asus Rampage IV Extreme x79 | 2 x 1080 GameRock Premium 8GB | 2 x Samsung Pro 840 512GB | Corsair AX1200i | BenQ XL2411 24" / W1070 135" | Bose QC25 | Windows 10 Pro x64 | HTC Vive |
2: Intel Core i7-4700HQ | 32GB RAM | Intel HM87 Express | GTX 780M | 17" | Windows 10 x64 |

Trädvy Permalänk
Medlem
Plats
Gävle
Registrerad
Aug 2005
Citat:

Ursprungligen inskrivet av Dalton Sleeper
Dock om man väljer publish i projektet så kan installern till programmet känna av vilken .net version man har, sen laddar den ner nyare version om behövs...

Gäller det även om man inte har -ngn- version av .NET installerad, eller kräver det minst .NET 1.0?

Trädvy Permalänk
Medlem
Plats
Umeå
Registrerad
Maj 2008
Citat:

Ursprungligen inskrivet av fqvarfort
Från den nya versionen 1.8...

+ Edit|Insert|Time med inställningen PM/AM lägger inte till "AM" eller "PM" efter tiden, om klockan är 1 på dagen lägger den till texten "01:00:00" och inte "01:00:00 PM"
+ I About-rutan står det "Silent Application" 2 ggr, lite redundant kanske
+ I Tray-menyn står det "New...", i vanliga menyn står det "New"
+ Save-alternativet i Tray-menyn är alltid aktiverat även om dokumentet redan är sparat (ska nog replikera beteended hos File|Save-menyn).
+ Titlebar uppdateras inte automatiskt med namnet på dokumentet när man sparar eller öppnar ett dokument (det uppdateras dock om man väljer att dölja titlebar och sedan visa den igjen i inställningarna).
+ Om man dockar fönstret förbockas alternativet i menyn, om man sedan flyttar fönstret manuellt är alternativet fortfarande ibockat.
+ Istället för "show minimize" och "show maximize" kanske det ska stå "allow minimize" resp "allow maximize"
+ View|Toolbar är inte förbockat om toolbar'n är synlig
+ View|Statusbar likaså
+ "Show minimize" och "show maximize" ska vara aktiverade/deaktiverade redan när konfigureringsrutan visas (testa att visa configure... -> klicka bort titlebar -> klicka på OK -> visa configure igjen -> det går nu att trycka på "show maximize" och "show minmize", trots att "show titlebar" är avmarkerad)
+ Om man avmarkerar "show titlebar" och markerar "show in taskbar" visas inte titelraden i taskbar (i alla fall i Win7, borde väl fungera likadant i XP/Vista). Testa att visa titlebar och taskbar och se vad som står i taskbar, avmarkera sedan titlebar och se vad som står i taskbar.
+ Om man väljer all text som finns i dokumentet och väljer Delete, försvinner Undo. Om man däremot markerar all text och tar bort det med Backspace finns Undo kvar.

Jag ska ta en titt på detta senare idag och kommer att releasa en v1.8.5

Corsair 650W || MSI Z68A-GD65 (G3) || Asus R9 290 OCII || Intel i7 2600K, 3.4GHz || 4x4GB 1600MHz Corsair || Arch Linux || Fractal Design R4 || 120hz BenQ 24" 2ms + Benq 24" 2 ms || Cyborg Rat 7 || Corsair K90 || Logitech Z5500 5.1 Ljudsystem

Trädvy Permalänk
Medlem
Plats
Umeå
Registrerad
Maj 2008

version 1.8.5 finns nu ute på silentapplication.se

Jag tror jag har lyckats fixa alla punkterna förutom de 2 sista då jag tror att de är väldigt komplicerade att fixa

Den första är:

Citat:

"+ Om man avmarkerar "show titlebar" och markerar "show in taskbar" visas inte titelraden i taskbar (i alla fall i Win7, borde väl fungera likadant i XP/Vista). Testa att visa titlebar och taskbar och se vad som står i taskbar, avmarkera sedan titlebar och se vad som står i taskbar."

Jag tror att den texten som är i titelbaren är den som är i taskbaren och därför kan jag nog ej fixa detta

Den andra är:

Citat:

"+ Om man väljer all text som finns i dokumentet och väljer Delete, försvinner Undo. Om man däremot markerar all text och tar bort det med Backspace finns Undo kvar."

Jag försökte fixa detta med key down event och om man markerade allt och deletade det skulle det sparas temporärt och sedan om man tryckte undo så skulle det gå tillbaka men eftersom delete knappen deletar allt innan eventet hinner köra koden så gick det inte som jag ville. Jag antar att detta går att fixa på nått sätt så ni får gärna komma med förslag!

Corsair 650W || MSI Z68A-GD65 (G3) || Asus R9 290 OCII || Intel i7 2600K, 3.4GHz || 4x4GB 1600MHz Corsair || Arch Linux || Fractal Design R4 || 120hz BenQ 24" 2ms + Benq 24" 2 ms || Cyborg Rat 7 || Corsair K90 || Logitech Z5500 5.1 Ljudsystem

Trädvy Permalänk
Medlem
Plats
Gävle
Registrerad
Aug 2005

Kanske att man kan lösa problemet med den tomma taskbar'n med att man kopplar trayikonen till ett dolt fönster istället för att koppla det till det riktiga fönstret? (och att man alltid uppdaterar det dolda fönstrets titlebar) Jag antar här att det fungerar som så i Net att man kopplar trayikonen till ett fönster, har själv bara använd direkt-API.

Nåja, hittade dessa småsaker i 1.8.5...

+ Replace nollställer Undo.
+ Om man ändrar i ett dokument och inte sparar det, och sedan drag'n'droppar ett annat dokument in i fönstret glömmer den att fråga om man vill spara det gamla dokumentet först innan den öppnar det nya dokumentet.
+ Om man öppnar ett dokument som programmet inte kan tolka, säg t.ex. en exekverbar fil som innehåller en massa "oläsbara tecken" kanske programmet ska meddela om 'et, kanske sama typ av balloontip som du använde till meddelandet om "överskriden storlek", och sedan en fråga i stil med "this will remove some formats, are you use?" eller ngt när man sparar om dokumentet första gången.

Trädvy Permalänk
Medlem
Plats
Umeå
Registrerad
Maj 2008

Jag har fixat den andra punkten.
Jag kan nog tyvärr inte fixa nått med undo eftersom jag helt enkelt tittar om den kan "undo:a" och om den inte kan det enligt textboxen finns det inte mycket jag kan göra åt det. Lite dålig förklaring kanske.
Den tredje punkten ska jag börja jobba på nu men jag vet inte riktigt hur jag ska fixa det, vi får se. Igen, kom gärna med förslag

Att knyta trayiconen till ett annat form eller så verkar ganska komplicerat så jag får nog ta det lite senare när jag väl har lärt mig mer. Ska googla lite på det senare.

Men igen tack för svar!

Corsair 650W || MSI Z68A-GD65 (G3) || Asus R9 290 OCII || Intel i7 2600K, 3.4GHz || 4x4GB 1600MHz Corsair || Arch Linux || Fractal Design R4 || 120hz BenQ 24" 2ms + Benq 24" 2 ms || Cyborg Rat 7 || Corsair K90 || Logitech Z5500 5.1 Ljudsystem

Trädvy Permalänk
Medlem
Plats
Gävle
Registrerad
Aug 2005

Möjlig lösning för (3)an vore att läsa in filen till en sträng (A); därefter ladda in innehållet i en dold textruta, läsa tillbaka det från textrutan till en annan sträng (B) och jmfra med ursprungssträngen (A = B?). Om där skiljer ngt fanns ett "oläsbart tecken".

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Jun 2004
Citat:

Ursprungligen inskrivet av toi
Jag kan nog tyvärr inte fixa nått med undo eftersom jag helt enkelt tittar om den kan "undo:a" och om den inte kan det enligt textboxen finns det inte mycket jag kan göra åt det.

Gör en egen implementation av undo-funktionalitet. Det enklaste är att använda en timer (bara att dra ut en från toolboxen och dubbelklicka på den) och spara ändringen sedan förra läget (om det skett en förändring). Spara t.ex. 50 sådana ändringar (brukar kallas "undo levels").

Den något mer avancerade och (mycket) mer effektiva lösningen är att spara undan alla ändringar löpande till ett objekt som sparar undan ändringen om den är tillräckligt omfattande (att välja varje ny/borttagen rad är då enklast).

Trädvy Permalänk
Medlem
Plats
Umeå
Registrerad
Maj 2008
Citat:

Ursprungligen inskrivet av fqvarfort
Möjlig lösning för (3)an vore att läsa in filen till en sträng (A); därefter ladda in innehållet i en dold textruta, läsa tillbaka det från textrutan till en annan sträng (B) och jmfra med ursprungssträngen (A = B?). Om där skiljer ngt fanns ett "oläsbart tecken".

Tror du inte detta tar ganska mycket onödigt minne, speciellt om man har en stor text fil?
Jag känner att jag inte orkar lägga till denna funktionen just nu eftersom det skulle krävas ganska mycket extra kod. Men jag ska kanske pröva att göra detta och se hur det blir.

Citat:

Ursprungligen inskrivet av azoapes
Gör en egen implementation av undo-funktionalitet. Det enklaste är att använda en timer (bara att dra ut en från toolboxen och dubbelklicka på den) och spara ändringen sedan förra läget (om det skett en förändring). Spara t.ex. 50 sådana ändringar (brukar kallas "undo levels").

Den något mer avancerade och (mycket) mer effektiva lösningen är att spara undan alla ändringar löpande till ett objekt som sparar undan ändringen om den är tillräckligt omfattande (att välja varje ny/borttagen rad är då enklast).

Jag vet inte riktigt hur jag ska börja och jag hittar inte något riktigt bra genom sökningar på google. Jag är trots allt en tidig nybörjare när det gäller programmering så jag har fortfarande problem att tänka precis hur det ska gå till.

Corsair 650W || MSI Z68A-GD65 (G3) || Asus R9 290 OCII || Intel i7 2600K, 3.4GHz || 4x4GB 1600MHz Corsair || Arch Linux || Fractal Design R4 || 120hz BenQ 24" 2ms + Benq 24" 2 ms || Cyborg Rat 7 || Corsair K90 || Logitech Z5500 5.1 Ljudsystem

Trädvy Permalänk
Medlem
Plats
127.0.0.1
Registrerad
Sep 2003
Citat:

Ursprungligen inskrivet av fqvarfort
Gäller det även om man inte har -ngn- version av .NET installerad, eller kräver det minst .NET 1.0?

Till&med XP har väll 1.0 förinstallerad, vista 3.0, sen vet jag inte om det äns krävs någon form av .net för detektering, låter ju lite tokigt :/

1: Intel i7-3930K | 32GB Corsair Dominator GT | Asus Rampage IV Extreme x79 | 2 x 1080 GameRock Premium 8GB | 2 x Samsung Pro 840 512GB | Corsair AX1200i | BenQ XL2411 24" / W1070 135" | Bose QC25 | Windows 10 Pro x64 | HTC Vive |
2: Intel Core i7-4700HQ | 32GB RAM | Intel HM87 Express | GTX 780M | 17" | Windows 10 x64 |

Trädvy Permalänk
Medlem
Plats
Gävle
Registrerad
Aug 2005

När jag tänker efter så behöver man inte ngn dold textruta, det går att använda den vanliga textrutan. Förutsätter dock att du läser in filen via en sträng. Läs in filen i sträng A -> fyll textrutan med innehållet i sträng A -> spara innehållet i textrutan i sträng B -> jmfr sträng A och B.

Iom att du är begränsad till 640 kB tror jag inte att det kommer att ta "odrägligt" lång tid oavsett vilken fil det är. Tiden det tar beror givetvis oxå på hur stor textfil man kan tänkas använda, jag tolkar det som så att programmet ska användas istället för Notepad, och i så fall är väl de flesta filer relativt små.

Jag vet inte om XP kommer med 1.0 förinstallerad, det är möjligt att jag plockade bort .NET när jag använde nLite. Testar gärna med en "Published" version för att se om detekteringen fungerar. Lite tokigt att det inte skulle fungera men det behöver hju inte betyda att det inte skulle fungera.

Trädvy Permalänk
Medlem
Plats
Umeå
Registrerad
Maj 2008
Citat:

Ursprungligen inskrivet av fqvarfort
När jag tänker efter så behöver man inte ngn dold textruta, det går att använda den vanliga textrutan. Förutsätter dock att du läser in filen via en sträng. Läs in filen i sträng A -> fyll textrutan med innehållet i sträng A -> spara innehållet i textrutan i sträng B -> jmfr sträng A och B.

Jo jag kom på detta med fast problemet jag har är att vid öppningen av filer så använder jag

StreamReader sr = new StreamReader(dlgOpen.FileName, Encoding.Default);

Jag använder detta för att kunna öppna filer med ANSI encoding, fast jag känner att nått inte riktigt stämmer att öppna det på detta sättet. Men nu till det problemet i sig; vid öppning så antar jag att den converterar all data till ANSI encoding och då kvittar det vad för fil jag öppnar, den kommer alltid se lika dan ut eftersom den har samma encoding hela tiden. Lät mer invecklat än vad det är xD

Frågan är kan man på nått sätt läsa "encodingen" på en fil och genom det varna användaren att data kan gå förlorad?

Corsair 650W || MSI Z68A-GD65 (G3) || Asus R9 290 OCII || Intel i7 2600K, 3.4GHz || 4x4GB 1600MHz Corsair || Arch Linux || Fractal Design R4 || 120hz BenQ 24" 2ms + Benq 24" 2 ms || Cyborg Rat 7 || Corsair K90 || Logitech Z5500 5.1 Ljudsystem

Trädvy Permalänk
Medlem
Plats
Gävle
Registrerad
Aug 2005

Nej man ska nog inte förlita sig på en signatur eftersom alla filer har sina egna signaturer (UTF-filer har BOM, EXE-filer har "MK", ZIP-filer har "PK" osv osv).

I .NET gäller nog att man ska använda Stream istället för StreamReader (googlade lite snabbt och Stream ser ut att vara den binära varianten av StreamReader), men jag vet inte hur det sedan fungerar när du läser in det i textrutan. Med Stream ska man tydligen kunna läsa in filen till en sträng som binär data istället för text (dvs utan att innehållet på något sätt ska kunna "tolkas fel").

Ser att StreamReader har en ReadLine()-metod, om det är den du använder kanske ReadToEnd()-metoden fungerar utan att den försöker tolka innehållet på ngt sätt. Är som sagt inte så hemma i .NET.

Trädvy Permalänk
Medlem
Plats
Umeå
Registrerad
Maj 2008

jag använder ReadToEnd() för att läsa in texten i textboxen, men jag ska pröva att använda stream istället

EDIT: Det verkade som stream inte riktigt är vad jag kan använda, jag lyckas inte skapa en stream av nån anledning.
Just nu känns det bäst som jag har det nu, men det borde ju kunna gå och fixa på nått sätt

Corsair 650W || MSI Z68A-GD65 (G3) || Asus R9 290 OCII || Intel i7 2600K, 3.4GHz || 4x4GB 1600MHz Corsair || Arch Linux || Fractal Design R4 || 120hz BenQ 24" 2ms + Benq 24" 2 ms || Cyborg Rat 7 || Corsair K90 || Logitech Z5500 5.1 Ljudsystem

Trädvy Permalänk
Medlem
Plats
Umeå
Registrerad
Maj 2008

Jag har lyckats lösa det genom en fuling. Jag tittar hur många bytes filen som ska öppnas är och jämnför längden på texten i textboxen med hur många bytes filen är, på detta sätt tror jag att jag kan se om man öppnar en fil som inte består av plain text

Corsair 650W || MSI Z68A-GD65 (G3) || Asus R9 290 OCII || Intel i7 2600K, 3.4GHz || 4x4GB 1600MHz Corsair || Arch Linux || Fractal Design R4 || 120hz BenQ 24" 2ms + Benq 24" 2 ms || Cyborg Rat 7 || Corsair K90 || Logitech Z5500 5.1 Ljudsystem

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Jan 2007

Hur funkar det med Unicode-stöd då?

Trädvy Permalänk
Medlem
Plats
Umeå
Registrerad
Maj 2008

Inte bra märkte jag nu.
Använder unicode 2bytes för varje tecken?
Kan ju ändra så att det blir viss marginal varningen visas vid.
Trots allt bra om den varnar nångång än inte alls

EDIT: Verkar som att det vanlig UTF-8 använder 1 byte för vanliga ASCII tecken och 4 bytes för speciella, kan detta stämma?

Corsair 650W || MSI Z68A-GD65 (G3) || Asus R9 290 OCII || Intel i7 2600K, 3.4GHz || 4x4GB 1600MHz Corsair || Arch Linux || Fractal Design R4 || 120hz BenQ 24" 2ms + Benq 24" 2 ms || Cyborg Rat 7 || Corsair K90 || Logitech Z5500 5.1 Ljudsystem

Trädvy Permalänk
Medlem
Plats
Gävle
Registrerad
Aug 2005

UTF-8 använder 1-4 bytes för varje tecken, de vanliga ASCII-tecknen tolkas som 1 byte, mer ovanliga 2-4 bytes. Så det kan bli svårt att jmfra filstorleken.

Trädvy Permalänk
Medlem
Plats
Umeå
Registrerad
Maj 2008

Jag tog helt enkelt:

if filen.storlekibytes > textboxen.text.längd * 4
visa bubblan

Det funkar till viss del men det är ju inte ett av de finaste lösningarna direkt

Corsair 650W || MSI Z68A-GD65 (G3) || Asus R9 290 OCII || Intel i7 2600K, 3.4GHz || 4x4GB 1600MHz Corsair || Arch Linux || Fractal Design R4 || 120hz BenQ 24" 2ms + Benq 24" 2 ms || Cyborg Rat 7 || Corsair K90 || Logitech Z5500 5.1 Ljudsystem