25. april 2003 - 16:30Der er
21 kommentarer og 1 løsning
Fejl i tekstprogram (Hjæææælp)
Hej..
Jeg har som sagt tidliger, lavet et tekstbehandlings ala notepad i windows... Når jeg complier programmet og fx skriver test i det og så gemmer det, går det fint nok, den gemmer det som en txt fil. Men når jeg åbner filen igen vises dette:
{\rtf1\ansi\ansicpg1252\deff0\deflang1030{\fonttbl{\f0\fnil\fcharset0 Times New Roman;}{\f1\fnil Times New Roman;}} \viewkind4\uc1\pard\f0\fs24 test\f1 \par }
Hvorfor gør den det? Den skulle jo åbne txt filen og så at der står test på skærmen...
Jeg bruger SaveDialog og OpenDialog... Ved du måske hvordan jeg kan rette fejlen... for jeg har nemlig også lavet det samme program bare hvor den gemmer det som en htm fil.. men så står der også alt der, når jeg åbner htm filen i en browser...
Du må have noget kode der bliver udført når du vælger "Åbn" fra menuen. I den kode bruger du OpenDialog, som viser en Windows standard open file dialog. Resultatet af den dialog plejer at være et filnavn, som du så selv skal åbne. Så du må have noget C++ kode, der bliver kørt når du vælger "Åbn".
Det første den kode gør er åbenbart at vise en OpenDialog. Det giver dig filnavnet. Så må koden gøre et eller andet med filnavnet, enten kalder du en komponent der indlæser det for dig, eller også har du selv skrevet noget kode der åbner filen, læser hvad der er i filen, og viser det i din edit kontrol. Det er den kode jeg vil høre lidt om.
Hmm... Så vidt jeg ved så bør LoadFromFiles faktisk parse RTF, og vise det korrekt.... Har du sat nogle spændende properties på RichEdit1, så den viser almindelig tekst? Jeg ved ikke meget om RichEdit tekstbokse, så jeg aner ikke hvilke properties der er.
Jeg har ikke ændret noget ud over standard skrifttypen.. men jeg har lavet en funktion der gør at man kan skifte skrifttype.. så det skulle jo gerne være sådan at man kunne vælge sin egen skrifttype uden problemer ik??
if (SaveDialog1->Execute()) { RichEdit1->PlainText = false; RichEdit1->Lines->SaveToFile(SaveDialog1->FileName); } if (OpenDialog1->Execute()) { RichEdit1->PlainText = false; RichEdit1->Lines->LoadFromFile(OpenDialog1->FileName); }
Så er du i hvert fald på den sikre side. Egentlig bør det være tilstrækkeligt bare at gøre en gang i din kode, måske i en konstruktør. Men det er svært at sige uden at vide hvordan din kode er struktureret.
Det jeg mener er at hvis de ting jeg har skrevet har hjulpet dig med dit problem, og du har lyst til at give lidt point, så lav et spørgsmål, hvor du bare skriver at det er point til olennert, med en reference til http://www.eksperten.dk/spm/344649, så kan jeg svare på det spørgsmål, og dermed få point'ene.
Derudover, så synes jeg selv jeg er en ganske habil C++ koder.
Men jeg ved ikke så meget om Windows-platformen, jeg er mere en Unix/Linux-mand.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.