Autor Téma: Obsah súboru txt - nie je korektný  (Přečteno 517 krát)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4338
  • Karma: 38
    • Verze Delphi: XE7 professional
Re:Obsah súboru txt - nie je korektný
« Odpověď #15 kdy: 18-06-2019, 20:07:14 »
Hm, výsledok nie je správny. Ostávam pri tom čo dal Delfin. Už nebudem nad tým špekulovať.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Delfin

  • Padawan
  • ******
  • Příspěvků: 1821
  • Karma: 70
  • SW konzultant
    • Verze Delphi: 2009, Tokyo, Rio
Re:Obsah súboru txt - nie je korektný
« Odpověď #16 kdy: 18-06-2019, 20:19:06 »
Jenze jsem si pri psani prvniho prispevku spletl TStringWriter s TStreamWriter ::) Omlouvam se za zmateni (radeji budu bez Delphi a "hlubsiho" overeni namisto psani zpameti a narychlo z manualu zticha).
« Poslední změna: 18-06-2019, 20:22:17 od Delfin »
I'm a soldier, so don't panic! I know the underground! I like the WTFPL license! No more Google, go duck, go!

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 2569
  • Karma: 132
    • Verze Delphi: D2007, XE3, DX10
Re:Obsah súboru txt - nie je korektný
« Odpověď #17 kdy: 18-06-2019, 20:26:39 »
Hm, výsledok nie je správny. Ostávam pri tom čo dal Delfin. Už nebudem nad tým špekulovať.
No protoze to zapisujes jako Unicode a ne ANSI.

Offline JaroB

  • Guru
  • *****
  • Příspěvků: 948
  • Karma: 26
    • Verze Delphi: XE8, Seattle
Re:Obsah súboru txt - nie je korektný
« Odpověď #18 kdy: 18-06-2019, 20:26:45 »
Třeba by stačilo jen tohle (jde to použít i pro ne-unicode)

Kód: Delphi [Vybrat]
  1. var
  2.   s: {$IFDEF UNICODE}TStringStream{$ELSE}TStringList{$ENDIF};
  3. begin
  4.   {$IFDEF UNICODE}
  5.   s := TStringStream.Create('-- nějaký text --');
  6.   {$ELSE}
  7.   s := TStringList.Create;
  8.   s.Text := '-- nějaký text --';
  9.   {$ENDIF}
  10.   try
  11.     s.SaveToFile(SaveDialog1.FileName);
  12.     if FileExists(SaveDialog1.FileName) then
  13.       MessageDlg('Soubor byl uložen sem'#13#10 + ExtractFilePath(SaveDialog1.FileName), mtInformation, [mbOK], 0);
  14.   finally
  15.     s.Free;
  16.   end;
  17.  
  18.  

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4338
  • Karma: 38
    • Verze Delphi: XE7 professional
Re:Obsah súboru txt - nie je korektný
« Odpověď #19 kdy: 18-06-2019, 20:37:16 »
Tak som to upravil
Kód: Delphi [Vybrat]
  1. var
  2.   Contents: AnsiString;
  3. begin
  4.     Stream := TFileStream.Create(FileName, fmCreate);
  5.     Stream.Write(Contents[1], Length(Contents) * StringElementsize(Contents));
a už to je v poriadku. Ja som si myslel, že AnsiString = Unicode.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Jirka

  • Plnoletý
  • ***
  • Příspěvků: 135
  • Karma: 8
    • Verze Delphi: XE2
Re:Obsah súboru txt - nie je korektný
« Odpověď #20 kdy: 18-06-2019, 20:53:08 »
To je pre užívateľa. Nie je to klasický log. (Na tom ešte len budem pracovať.) Kontrolujem kompletnosť údajov. Ak tam bude viac nedostatkov, tak je jednoduchšie si zobraziť/vytlačiť súbor a postupovať podľa toho. Akonáhle zavrie okno o chybách, tak nevie čo tam bolo.
Samostatny Form  s TMemo + 2 Button
do TMemo nasypat zpravu   1 tlačítko pro tisk (např FastReport)   druhé pro  "Kopirovat do schránky"

můžeš používat jako univerzální "hlásič" v celé aplikaci   

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4338
  • Karma: 38
    • Verze Delphi: XE7 professional
Re:Obsah súboru txt - nie je korektný
« Odpověď #21 kdy: 18-06-2019, 20:57:45 »
Používam TMS TAdvTaskDialog
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Jirka

  • Plnoletý
  • ***
  • Příspěvků: 135
  • Karma: 8
    • Verze Delphi: XE2
Re:Obsah súboru txt - nie je korektný
« Odpověď #22 kdy: 18-06-2019, 21:12:22 »
Používam TMS TAdvTaskDialog
Tak mi trochu uniká proč nepoužiješ toto a ukládaš pracně něco co uživatel bude potřebovat pouze po kontrolu aktuálního záznamu
stejně další hláška o kontrole bude na 99% odlišná 
(Když bude mít pocit že si hlášku nezapamatuje tak si ji vytiskne případně uloží a pak vyvolá )

Offline Delfin

  • Padawan
  • ******
  • Příspěvků: 1821
  • Karma: 70
  • SW konzultant
    • Verze Delphi: 2009, Tokyo, Rio
Re:Obsah súboru txt - nie je korektný
« Odpověď #23 kdy: 18-06-2019, 21:18:46 »
K tomu jak souvisi trida dialogu TMS (jenz bude nejspis nic vic nez obalem Windows API) pro zobrazeni dialogu s ukladanim do textoveho souboru ci dokonce kontrolou zaznamu bych zrejme potreboval zacit uzivat drogy. Takze za me uz :-X A mozna i na delsi dobu, protoze latka je posledni dobou (az na vyjimky) hodne nizko ??? :( :-X
« Poslední změna: 18-06-2019, 21:23:14 od Delfin »
I'm a soldier, so don't panic! I know the underground! I like the WTFPL license! No more Google, go duck, go!

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4338
  • Karma: 38
    • Verze Delphi: XE7 professional
Re:Obsah súboru txt - nie je korektný
« Odpověď #24 kdy: 18-06-2019, 21:26:13 »
Používam TMS TAdvTaskDialog
Tak mi trochu uniká proč nepoužiješ toto a ukládaš pracně něco co uživatel bude potřebovat pouze po kontrolu aktuálního záznamu
stejně další hláška o kontrole bude na 99% odlišná 
(Když bude mít pocit že si hlášku nezapamatuje tak si ji vytiskne případně uloží a pak vyvolá )
Veď píšem, že to používam ;)  Ale čo má tlačidlo urobiť si už musím naprogramovať sám. To nie sú preddefinované prvky.
.

Trochu Ti ušlo, že sa jedná o kompletnú kontrolu údajov. Nekontrolujem jednotlivé záznamy. Ale väzby medzi nimi, nejaké obmedzujúce podmienky, chýbajúce údaje a nepoužité údaje. Tých chýb tam môže byť aj na celú stranu. Bez tejto kontroly sa nemôže spustiť výpočet. Okrem nezmyselných výsledkov by mi aj havaroval program.
Niektoré chyby vypisujem pomocou zostavy. Keď to píšem, tak vidím, že v tom mám poriadny chaos ::)  Budem si to musieť ujasniť.
Zostavy sú väčšinou štruktúrované a tu sa jedná od úplne jednoduchý výpis. Je tam aj tlačidlo Tlač čo dáva v podstate ten istý výsledok. Ale každý má iný spôsob práce. Niekto si to bude značiť na papieri a iný postupne vymazávať zo súboru.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Jirka

  • Plnoletý
  • ***
  • Příspěvků: 135
  • Karma: 8
    • Verze Delphi: XE2
Re:Obsah súboru txt - nie je korektný
« Odpověď #25 kdy: 18-06-2019, 21:28:21 »
K tomu jak souvisi trida dialogu TMS (jenz bude nejspis nic vic nez obalem Windows API) pro zobrazeni dialogu s ukladanim do textoveho souboru ci dokonce kontrolou zaznamu bych zrejme potreboval zacit uzivat drogy. Takze za me uz :-X
Drogy brát určitě nemusíš  ;D
Já jsem řešil jen a jen jako zobrazení nějakého obecného hlašení
Pochopil jsem to takto:
1. Uživatel ukládá data
2. Proběhne logická kontrola dat
3. Pokud to neprojde, vygeneruje se text s popisem co je špatně a jak se to má  odstranit
4. Tento text zobrazím v čemkoliv rozumně použitelném (s možností dalších akcí)
5. Uživatele vrátím zpátky k opravě dat a k bodu číslo 1
 
Pokud to tak není  - jsem  :-X
« Poslední změna: 18-06-2019, 21:34:54 od Jirka »

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4338
  • Karma: 38
    • Verze Delphi: XE7 professional
Re:Obsah súboru txt - nie je korektný
« Odpověď #26 kdy: 18-06-2019, 21:30:27 »
Tak to aj mám. Ale už si určite z predchádzajúceho príspevku pochopil, že toto je niečo úplne iné.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Delfin

  • Padawan
  • ******
  • Příspěvků: 1821
  • Karma: 70
  • SW konzultant
    • Verze Delphi: 2009, Tokyo, Rio
Re:Obsah súboru txt - nie je korektný
« Odpověď #27 kdy: 18-06-2019, 21:33:21 »
Drogy brát určitě nemusíš  ;D

Puvodni dotaz byl (zrejme) o chybe otevreni textoveho souboru ulozeneho pomoci zminovane ukazky od EMBT. Tak jsem ten si ten dotaz vylozil. Pro to, abych pochopil jakou souvislost s tim ma nejaky princip kontroly zaznamu a zobrazeni dialogu bych je spis mel zacit uzivat ;)

P.S. kdyby slo o X/Y problem, tedy o reportovani neodchycenych chyb, doporucil bych spise hotova reseni jako MadExcept nebo EurekaLog. Pro logovani pak minimalne vlastni, ci uz existujici reseni (z existujicich napr. CodeSite).
« Poslední změna: 18-06-2019, 21:42:52 od Delfin »
I'm a soldier, so don't panic! I know the underground! I like the WTFPL license! No more Google, go duck, go!

Offline JaroB

  • Guru
  • *****
  • Příspěvků: 948
  • Karma: 26
    • Verze Delphi: XE8, Seattle
Re:Obsah súboru txt - nie je korektný
« Odpověď #28 kdy: 18-06-2019, 22:07:30 »
Kdysi dávno jsem používal takhle jednoduchou procku
 ;)
a funguje to furt

Kód: Delphi [Vybrat]
  1. procedure WriteLine(const FName, S: string);
  2. var F: Text;
  3. begin
  4.   AsSign(F, FName);
  5. {$I-}
  6.   Append(F);
  7. {$I+}
  8.   if IoResult <> 0 then ReWrite(F);
  9.   WriteLn(F, S);
  10.   Close(F);
  11. end;
  12.  

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 2569
  • Karma: 132
    • Verze Delphi: D2007, XE3, DX10
Re:Obsah súboru txt - nie je korektný
« Odpověď #29 kdy: 18-06-2019, 22:44:24 »
Zostavy sú väčšinou štruktúrované a tu sa jedná od úplne jednoduchý výpis. Je tam aj tlačidlo Tlač čo dáva v podstate ten istý výsledok. Ale každý má iný spôsob práce. Niekto si to bude značiť na papieri a iný postupne vymazávať zo súboru.
No a proc jednoduse ten report o chybach nepodrzis nekde v pameti jako jeden dlouhy string pres nekolik radku, ktery uzivatelovi umoznis zobrazit v nejakem samostatnem okenku s (Rich)Memo? Tam si to muze prohlizet do zblbnuti. Teoreticky mu muzes jeste udelat kopii a nechat ho v tom memo text editovat=odmazavat? a kdybys na nej chtel byt extra hodny, tak jeste udelat barevnou diff projekci mezi puvodnim a soucasnym stavem.

Predpokladam, ze to nemusi byt persistenti a lidi, kteri si kazdou p*covinu tisknou, tech uz taky moc nebude - to jsou tak max. politici, kteri sice kazdy maji reprezentativni ntb, ale tisknout se pro ne tuny materialu, ktere nikdo z nich stejne necte a hlasuji, aniz by vedeli o cem na pokyn stranickych sekretariatu :-(