Hoppa till innehåll

Sida 1 av 1
  • Du kan inte starta en ny tråd
  • Du kan inte svara i tråden

Visual 2010 Forms komparera två texter. Hur stora kan texterna vara

#1
Medlem är utloggad   simkort 

  • Flitig
  • PipPipPipPip
  • Grupp: Medlemmar
  • Inlägg: 518
  • Gick med: 2010-02-21

Skrivet 27 jul 2011, 13:04

i Exemplet jämför man bara tre bokstäver, men om man vill jämföra två stora texter
hur stora filer klarar man av i ett svep.

Det skulle också vara bra om man fick förslag på hur man söker ett visst ord i texten(filen)


private: System::Void textBox1_TextChanged(System::Object^  sender, System::EventArgs^  e)
			 {
			
			 }
	
	private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) 
			 {
			
			
		
		String^ text = textBox1->Text->ToString();
		 if( text=="ABC")		 

{

MessageBox::Show("" + "RÄTT");

}

else

{

MessageBox::Show("" + "FEL");
}
		 }


0

#2

  • Veteran
  • PipPipPipPipPip
  • Grupp: Medlemmar
  • Inlägg: 3 385
  • Gick med: 2001-12-06
  • Ort:Västerås

Skrivet 27 jul 2011, 13:15

Visa inläggsimkort, den 27 jul 2011, 13:04, sa:

i Exemplet jämför man bara tre bokstäver, men om man vill jämföra två stora texter
hur stora filer klarar man av i ett svep.


Det är ditt minne (RAM) som sätter gränsen. I praktiken brukar man dock inte jämföra filer som klump, utan man hämtar exempelvis 16 kB i taget från båda filerna och jämför. Stämmer det inte så behöver man ju inte jämföra mer, men om det stämmer får man hämta 16 kB till och fortsätta jämförelsen.
0

#3
Medlem är utloggad   Cecilia 

  • Beroende
  • Ikon
  • Grupp: Huvudmoderator
  • Inlägg: 80 875
  • Gick med: 2003-05-06
  • Ort:Stockholm

Skrivet 27 jul 2011, 13:57

Visa inläggsimkort, den 27 jul 2011, 13:04, sa:

Det skulle också vara bra om man fick förslag på hur man söker ett visst ord i texten(filen)

Då läser man tecken för tecken i filen och jämför med första tecknet i ordet man vill hitta. När man hittar den första bokstaven så jämför man nästa bokstav i filen med nästa bokstav i ordet, och så vidare tills man vet alla bokstäverna är lika. Så fort man hittar en olikhet så får man återgå till att leta efter första tecknet i ordet.
0

#4
Medlem är utloggad   simkort 

  • Flitig
  • PipPipPipPip
  • Grupp: Medlemmar
  • Inlägg: 518
  • Gick med: 2010-02-21

Skrivet 27 jul 2011, 17:11

Tydal menar att det är ramminnet som sätter gränsen, hur det är med det

har jag ingen aning om, men han har säkert rätt.

Tänkte så här om man har en dator som är osmittad av diverse så skulle man kunna

ha det på på en viss plats på hårddisken. När man startar upp datorn jämför

man med delen man jobbar med om det då inte stämmer så tas det bort som

är annorlunda. Tydal menar att man kan jämföra hela filer, fast det är inte vanligt.

Det här sättet att jämföra hela filer är blixtsnabbt, och kanske lite nytt.
0

#5
Medlem är utloggad   Cecilia 

  • Beroende
  • Ikon
  • Grupp: Huvudmoderator
  • Inlägg: 80 875
  • Gick med: 2003-05-06
  • Ort:Stockholm

Skrivet 27 jul 2011, 17:47

Visst har Thomas rätt. En String ligger processens arbetsminne, dvs i RAM-minnet. En process har en begränsad tilldelning av RAM-minne.

Resten av ditt inlägg förstår jag inte vad du menar med.
0

#6
Medlem är utloggad   simkort 

  • Flitig
  • PipPipPipPip
  • Grupp: Medlemmar
  • Inlägg: 518
  • Gick med: 2010-02-21

Skrivet 27 jul 2011, 19:26

Är inte så säker på att Tydal har rätt, man kan ju ha en USB-sticka!!!

Du Cecilia nu förstår du mer om vad jag hänsyftade på.

Alltså jämföra friska filer med förmodat friska.
0

#7
Medlem är utloggad   Cecilia 

  • Beroende
  • Ikon
  • Grupp: Huvudmoderator
  • Inlägg: 80 875
  • Gick med: 2003-05-06
  • Ort:Stockholm

Skrivet 28 jul 2011, 00:01

Även om du har en USB-sticka kommer inte ditt program att använda sig av USB-stickan när den allokerar utrymme för en String.

Menar du att du ska ha en kopia av alla filer på hårddisken och jämföra om de har ändrat sig?
Förutom att det tar väldigt mycket hårddiskutrymme och är tidsödande så är det få skadliga program som ändrar befintliga filer men det finns några typer. Virut ändrar alla exe-filer den hittar och har man fått in virut i datorn märker man det på att program börjar krascha och sluta att fungera så den märks ändå (bara att formatera och installera Windows på nytt). Vissa rootkit ändrar en hårddisknära drivrutin men eftersom infektionen just har kontroll över hårddisken så kommer den att ge dig den ursprungliga filen när ditt program frågar efter den drivrutinsfilen och inte den infekterade filen som används.
0

#8
Medlem är utloggad   Monshi 

  • Beroende
  • Ikon
  • Grupp: Moderatorer
  • Inlägg: 23 554
  • Gick med: 2001-06-24
  • Ort:Enebyberg

Skrivet 30 jul 2011, 10:39

Tydal har rätt.
Bäste sättet är att läsa in en begränsad mängd data i minnet och bearbeta dessa. Om man vet att data längre fram i filen är icke beroende av data i början av filen är det onödigt att läsa in mer än man behöver för stunden.

Lite som att du ska ha en deciliter vatten och börjar med att fylla badkaret. Det tar tid, det tar plats.

Givetvis, är det en liten fil på några kB då kan man gott läsa in allt på en gång men samtidigt varför behandla det som ett specialfall? Lika bara att behandla alla lika. Dvs oavsett om filen är på flera hundra MB eller några få kB läs bara in det du behöver för stunden.
0

#9
Medlem är utloggad   simkort 

  • Flitig
  • PipPipPipPip
  • Grupp: Medlemmar
  • Inlägg: 518
  • Gick med: 2010-02-21

Skrivet 30 jul 2011, 14:43

Man kan ju mäta på olika sätt, antag att det är lika mycket vatten i badkaren.
Då väger dom lika, alltså komparerar det till samma.
Det är osannolikt att två olika program "väger lika" för finns det en
skillnad i program väger det inte lika,
Det här är komplicerat. ja om du inte är så listig som jag tror att du är.
0
Sida 1 av 1
  • Du kan inte starta en ny tråd
  • Du kan inte svara i tråden

1 besökare läser just nu den här tråden, varav 0 medlem(mar) och 1 gäst(er)
 
 
Senast obesvarade trådar
Prenumerera på nyheter

Missa inte våra nya
smarta nyhetsbrev

Läs mer om nyhetsbreven här!
Beställ direkt:


Extreme
PC för Alla-nätverket