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 | 1234 (1036) | vorantz |
| » | [c#] iz class v classOddelek: Programiranje | 984 (858) | darkolord |
| » | [c#] savefiledialog, en sfd a več datotekOddelek: Programiranje | 847 (775) | darkkk |
| » | C# ProblemOddelek: Programiranje | 1371 (1167) | joze67 |
| » | C# text v .pdfOddelek: Programiranje | 1558 (1347) | japol |