Forum » Programiranje » [c#] shrani text, tabele, slike
[c#] shrani text, tabele, slike

japol ::
Kako se praviloma shranjuje text s slikami, tabelami,...? Kakšne so možnosti? Ne morem ravno shraniti v .doc, prav tako ne, da shranim tekst v .txt obliki, slike pa v .jpg in potem se za vsako shranitev ustvari mapa v kateri so .txt in .jpg-ji.

noraguta ::
cvs ne bo šlo prov easy, html tud ne. uporab xml al pa celo json serializacijo.(sam bi najprej probal slednjo).
Pust' ot pobyedy k pobyedye vyedyot!

KrEn1234 ::
Zakaj pa ne shranjuješ tega preprosto v bazi? Poleg široke izbire open-source db ima celo MS dve zastonjski različice MS SQL. Ena je celo v datotečni obliki, in si celo namestitev prihraniš.
Če pa res potrebuješ datoteko, naredi novi DTO z vsemi potrebnimi property(string za besedilo, byte[] slika). Dodaj mu potrebne atribute(npr Serializable). Nato ga serializiraj in ga zapiši na disk.
Če pa res potrebuješ datoteko, naredi novi DTO z vsemi potrebnimi property(string za besedilo, byte[] slika). Dodaj mu potrebne atribute(npr Serializable). Nato ga serializiraj in ga zapiši na disk.
Zgodovina sprememb…
- spremenil: KrEn1234 ()

japol ::
Tako je, mislil sem nekaj v tej smeri:
serializacija: http://www.switchonthecode.com/tutorial...
ali
base64: http://www.dailycoding.com/Posts/conver...
serializacija: http://www.switchonthecode.com/tutorial...
ali
base64: http://www.dailycoding.com/Posts/conver...

KrEn1234 ::
Če bi rad to delal masovno, se ti splača poiskati kakšen xsd 2 code mapper.
Nekoč sta se množično uporabljala xsd.exe in xsd2code(http://xsd2code.codeplex.com/). Verjamem pa, da obstoja tudi kaj bolj modernega,..
Nekoč sta se množično uporabljala xsd.exe in xsd2code(http://xsd2code.codeplex.com/). Verjamem pa, da obstoja tudi kaj bolj modernega,..

japol ::
Če prav razumem je potek tak:
image pretvorim v bytearray, nato memorystream, potem preberem z binaryreaderjem in vse te byte zapišem v npr. beležnico.
A to drži?
image pretvorim v bytearray, nato memorystream, potem preberem z binaryreaderjem in vse te byte zapišem v npr. beležnico.
A to drži?

noraguta ::
ma sej je vseen imgge daš u bytearray pa embedaš v serializator kot base64 string.
evo ti še en soliden serializator. ker xsd ma kulkr se spomnem probleme z polimorfizmom. ti maš pa datagrid.
evo ti še en soliden serializator. ker xsd ma kulkr se spomnem probleme z polimorfizmom. ti maš pa datagrid.
Pust' ot pobyedy k pobyedye vyedyot!

japol ::
primer imam:
le da bo slika iz: Image image = pictureBox1.Image;
nekako jo moram pretvoriti.
Kak primer kode bi bil dobrodošel....
Če lahk, daj primer kode z uporabo: Image image = pictureBox1.Image;
p.s. sem se sploh pravilno lotil tega? Kako to programerji pravilno delajo?
SaveFileDialog saveFile1 = new SaveFileDialog(); saveFile1.DefaultExt = "*.txt"; saveFile1.Filter = "txt Files|*.txt"; if (saveFile1.ShowDialog() == System.Windows.Forms.DialogResult.OK &&saveFile1.FileName.Length > 0) { StreamWriter sw = new StreamWriter(saveFile1.FileName); try { byte[] file = File.ReadAllBytes(@"D:\\Programiranje\\Shrani sliko kot tekst\\testnaslika.jpg"); using (MemoryStream memory = new MemoryStream(file)) { using (BinaryReader reader = new BinaryReader(memory)) { for (int i = 0; i < file.Length; i++) { byte result = reader.ReadByte(); sw.Write(result); } } } } catch { MessageBox.Show("Ne morem shraniti dokumenta!"); } }
le da bo slika iz: Image image = pictureBox1.Image;
nekako jo moram pretvoriti.
Kak primer kode bi bil dobrodošel....
Če lahk, daj primer kode z uporabo: Image image = pictureBox1.Image;
p.s. sem se sploh pravilno lotil tega? Kako to programerji pravilno delajo?

japol ::
Sem razmišljaj tudi v tej smeri da bi sliko shranil na disk in jo potem pretovril in originalno sliko izbrisal. Ampak se temu želim ogniti.

noraguta ::
eh ne kompiliceri posebej z linkanjem. http://www.dailycoding.com/Posts/conver...
pa embedaš img lepo v xml al pa jdom dokument pa je.
pa embedaš img lepo v xml al pa jdom dokument pa je.
Pust' ot pobyedy k pobyedye vyedyot!

japol ::
Točno ta primer sem uporabil, ampak ne dela ko želim iz string nazaj v image.
Shranil sem sliko s StreamWriter v .txt datoteko z .write. In s streamreaderjem želim prebrati ta tekst in nazaj sestaviti sliko.
napaka: je v vrstici: byte[] imageBytes = Convert.FromBase64String(base64String);
Invalid character in a Base-64 string.
Shranil sem sliko s StreamWriter v .txt datoteko z .write. In s streamreaderjem želim prebrati ta tekst in nazaj sestaviti sliko.
OpenFileDialog openFile1 = new OpenFileDialog(); openFile1.DefaultExt = "*.txt"; openFile1.Filter = "txt Files|*.txt"; if (openFile1.ShowDialog() == System.Windows.Forms.DialogResult.OK && openFile1.FileName.Length > 0) { StreamReader sw = new StreamReader(openFile1.FileName); string base64String = sw.ToString(); byte[] imageBytes = Convert.FromBase64String(base64String); MemoryStream ms = new MemoryStream(imageBytes, 0, imageBytes.Length); ms.Write(imageBytes, 0, imageBytes.Length); Image image = Image.FromStream(ms, true); pictureBox2.Image = image; }
napaka: je v vrstici: byte[] imageBytes = Convert.FromBase64String(base64String);
Invalid character in a Base-64 string.

noraguta ::
Točno ta primer sem uporabil, ampak ne dela ko želim iz string nazaj v image.
Shranil sem sliko s StreamWriter v .txt datoteko z .write. In s streamreaderjem želim prebrati ta tekst in nazaj sestaviti sliko.
OpenFileDialog openFile1 = new OpenFileDialog();
openFile1.DefaultExt = "*.txt";
openFile1.Filter = "txt Files|*.txt";
if (openFile1.ShowDialog() == System.Windows.Forms.DialogResult.OK && openFile1.FileName.Length > 0)
{
StreamReader sw = new StreamReader(openFile1.FileName);
string base64String = sw.ToString();
byte[] imageBytes = Convert.FromBase64String(base64String);
MemoryStream ms = new MemoryStream(imageBytes, 0, imageBytes.Length);
ms.Write(imageBytes, 0, imageBytes.Length);
Image image = Image.FromStream(ms, true);
pictureBox2.Image = image;
}
napaka: je v vrstici: byte[] imageBytes = Convert.FromBase64String(base64String);
Invalid character in a Base-64 string.
tkole se da bolj težko pomagat. lahko da se kaj sfriži že pri serializaciji.
Pust' ot pobyedy k pobyedye vyedyot!

japol ::
Mi je uspelo, moral bi pisati: string base64String = sw.ReadToEnd(); da prebere celotni string.
Poskušal bom še z BinaryReaderjem.
Poskušal bom še z BinaryReaderjem.

noraguta ::
če ti dela se raš lot datagrida tm zna bit še pestro.
Pust' ot pobyedy k pobyedye vyedyot!

japol ::
Ko poskušam shraniti, mi naredi datoteko vendar je prazna (gre za .txt). Nič ne zapiše vanjo. Kaj je narobe s to kodo?
StreamWriter sw = new StreamWriter(saveFile1.FileName); string besedilo = textBox2.Text; byte[] file = Encoding.ASCII.GetBytes(besedilo); for (int i = 0; i < file.Length; i++) { sw.WriteLine(file[i].ToString() + " "); }

roba87 ::
uporabi na koncu
Aja, pa če hočeš v file iz textboxa pisat, lahko uporabiš (glede na tvoj primer) :
sw.Flush(); // Use this method to move any information from an underlying buffer to its destination, clear the buffer, or both.
Aja, pa če hočeš v file iz textboxa pisat, lahko uporabiš (glede na tvoj primer) :
StreamWriter sw = new StreamWriter("D:\\test.txt"); string besedilo = textBox2.Text; byte[] file = Encoding.ASCII.GetBytes(besedilo); sw.WriteLine(System.Text.Encoding.UTF8.GetString(file)); sw.Flush();
Zgodovina sprememb…
- spremenil: roba87 ()

japol ::
Recimo da imam v .txt vpisane byte:
108
101
112
111
32
118
114
101
109
101
Kako jih odprem (pretvorim) v nek textbox tako da mi spiše v besedah?
108
101
112
111
32
118
114
101
109
101
Kako jih odprem (pretvorim) v nek textbox tako da mi spiše v besedah?

klemen93 ::
StreamReader sr = new StreamReader("neki.txt"); string vrstica = string.Empty(); while ((vrstica = sr.ReadLine()) != null) { textbox.Text += vrstica + " "; }

klemen93 ::
Nisem prebral da hočeš tudi pretvoriti byte, ker pa svojega prejšnega odgovora ne morem popravljati pošiljam ponovno.
StreamReader sr = new StreamReader("neki.txt"); UTF8Encoding encoding = new UTF8Encoding(); List<Byte> listBytov = new List<Byte>(); string vrstica; while ((vrstica = sr.ReadLine()) != null) { listBytov.Add(byte.Parse(vrstica)); } textbox.Text = encoding.GetString(listBytov.ToArray());
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [c#] preberi tekst ločen na deleOddelek: Programiranje | 1119 (921) | vorantz |
» | [c#] iz class v classOddelek: Programiranje | 902 (776) | darkolord |
» | [c#] savefiledialog, en sfd a več datotekOddelek: Programiranje | 768 (696) | darkkk |
» | C# ProblemOddelek: Programiranje | 1276 (1072) | joze67 |
» | C# text v .pdfOddelek: Programiranje | 1451 (1240) | japol |